新手上路
这个用Python怎么做能教一下吗 逻辑:首先 定义一个函数,用来计算一个数的因子和
然后x遍历6-10000,y遍历x+1-10000
通过上面的函数判断是否满足亲密数条件,输出 这样写对不对?
#计算因子的函数
def sum_yinzi(num):
sum_yinzijisuan = 0
for i in range(1,num+1):
if num % i == 0 :
sum_yinzijisuan += i
return sum_yinzijisuan
#验证
#print(sum_yinzi(220))
#print(sum_yinzi(284))
#print(sum_yinzi(503))
#循环计算,加入列表
a = []
b = []
for n in range(6,1001):
resualt = sum_yinzi(n)
a.append(n)
b.append(resualt)
#判断因子对
for m in range(0,len(a)):
for n in range(m,len(a)):
if (b ==b) and (a != a):
print(a, a) 楼上的计算因子函数,会导致(6,11)被误判,主要题目也有问题,亲密数对的准确要求是:小于自身的因子和,即6的因子和是1,2,3,不含6;11的因子和是1。
def SumOfFactor(num):
sum = 0
for i in range(1,(num//2)+1,1):
if num%i==0:
sum += i
return sum
for a in range(6,10001,1):
b = SumOfFactor(a)
if SumOfFactor(b) == a:
if a<b:
print('(' ,a,',',b,')') for a in range(6,10001,1):
b = SumOfFactor(a)
if b>a: #避免成对出现(220,284)和(284,220)
if SumOfFactor(b) == a:
print('(' ,a,',',b,')')
这个运行效率高一点 bigbird0419 发表于 2020-4-9 22:46
楼上的计算因子函数,会导致(6,11)被误判,主要题目也有问题,亲密数对的准确要求是:小于自身的因子和, ...
嗯,我没理解对题目。。。。。。。。哎。。。
页:
[1]