day09
求完数
求100以内的的完数
分析
完数的定义:一个数的因数和是它自己,这个数就是完数
6=1+2+3
28=1+2+4+7+14
编码实现
1.编码实现(循环)
for n in range(1,1000):
sum=0
for i in range(1,n//2+1): #过半就不求因数 n//2
if n%i==0:
sum=sum+i #因数累加
if sum==n:
print(n)
运行结果
6
28
496
2.编码实现(函数)
def gets(n):
s=0
for i in range(1,n//2+1):
if n%i==0:
s = s + i
return s
for n in range(1,1000):
if gets(n)==n:
print(n)
运行结果
6
28
496