求一个数的所有约数,存储到列表并计算内存

该博客探讨了如何求一个整数的所有约数并将它们存储到列表中,然后计算列表的内存占用。此外,还涉及到了斐波那契数列的生成及其内存计算,并展示了求两个数的最大公约数的过程。

求一个数的所有约数,并存储到列表中,再计算内存

**```
#先定义一个列表
list=[]
int_approximate=int(input(‘请输入一个整数:’))
#遍历这个列表 ,第一个数到输入数本身
for i in range(1,int_approximate+1):
#如果这个整数(int_approximate)能整除列表中每一个数(i)
if int_approximate % i ==0:
#把(i)存储到列表中
list . append ( i )
print(f ’ 约数是{ i } ’ , end= ’ ')
#求列表的内存(注意不要打太大,不然会卡住,因为计算机要算一段时间)
import sys
print ( sys.getsizeof ( list ) )


> D:\ProgramData\Anaconda3\python.exe C:/Users/Administrator/Desktop/python.py
请输入666
约数是1 	 约数是2 	 约数是3 	 约数是6 	 约数是9 	 约数是18 	 约数是37 	 约数是74 	 约数是111 	 约数是222 	 约数是333 	 约数是666 	 192

Process finished with exit code 0

**

## ~~斐波那契数列,用循环和列表分别处理,并计算内存,比较其中差距~~ 

**
***`
循环方式
int_1=1
int_2=1
int_3=3
int1=int(input ('请输入一个整数:'))
#第三个数小于输入数
while int_3<=int1:
把int_1+int_2的值想加赋值给int_2
	int_1 , int_2	=	int_2 , int_1+int_2
	print (f"数列是:{int_2}" , end=' \t ')
	int_3+=1
	#求占用的内存字节 1kb=1024字节就和手机流量一样1G=1024m
import sys
print ( sys.getsizeof(int_3))
`***

> D:\ProgramData\Anaconda3\python.exe C:/Users/Administrator/Desktop/python.py
请输入一个整数:6
数列是:2 	 数列是:3 	 数列是:5 	 数列是:8 	 28

Process finished with exit code 0


列表方式
list1=[1,1 ]
m=3
n=int(input(’ 请输入第几个数:’))
while m<=n:
list1.append(list1[-2]+list1[-1])
m+=1
print(f’数列是{list1} ’ )
import sys
print(sys.getsizeof(list1))


D:\ProgramData\Anaconda3\python.exe C:/Users/Administrator/Desktop/python.py
请输入第几个数:6
数列是[1, 1, 2]
数列是[1, 1, 2, 3]
数列是[1, 1, 2, 3, 5]
数列是[1, 1, 2, 3, 5, 8]
112

Process finished with exit code 0

***求最大公约数,并存储到列表(greatest common factor) ***

***number1=int(input('请输入一个整数: '))
number2=int(input(' 请输入另一个整数:'))
list1 = []
list2 = []
for i in range(1,number1+1):
    if number1 % i == 0:
        list1.append(i)
for i in range(1,number2+1):
    if number2 % i == 0:
        list2.append(i)
print(list1)
print(list2)
#遍历列表,list1列表长度倒序,和终点,以及步长
for k in range(len(list1)-1,-1,-1):
#如果列表list1第k个索引在list2这个列表里面
    if list1 [k] in list2:
        print(f'最大公约数',list1[k])
        #求到最大公约数运算停止
        break***

D:\ProgramData\Anaconda3\python.exe C:/Users/Administrator/Desktop/python.py
请输入一个整数: 666
请输入另一个整数:999
[1, 2, 3, 6, 9, 18, 37, 74, 111, 222, 333, 666]
[1, 3, 9, 27, 37, 111, 333, 999]
最大公约数 333

Process finished with exit code 0

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值