Python 如何找到友好号码?

Python 如何找到友好号码?,python,Python,我想用Python找到一个友好的数字。 友好数是两个相互关联的不同数,每个数的适当因子之和等于另一个数。(一个数字的适当除数是该数字本身以外的正因子。例如,6的适当除数是1、2和3。) 我想探索1~20000个。 所以我写了一些代码 for i in range(1,20000): a=0 for j in range(1,i): if i%j==0: a=a+j break for p in range(1,20000):

我想用Python找到一个友好的数字。 友好数是两个相互关联的不同数,每个数的适当因子之和等于另一个数。(一个数字的适当除数是该数字本身以外的正因子。例如,6的适当除数是1、2和3。) 我想探索1~20000个。 所以我写了一些代码

for i in range(1,20000):
    a=0
    for j in range(1,i):
        if i%j==0:
            a=a+j
        break
for p in range(1,20000):
    s=0
    for k in range(1,p):
        if p%k==0:
            s=s+k
        break
if s==a and i!=p:
    print(i,'amicable',p)

我只学这些东西对于“,”while“,range…所以我想使用它们。

最好定义一个函数来计算一个数字的除数(您已经在代码的一部分中这样做了),然后为不同的数字调用duivisors函数,并检查它们是否友好。注意,这里可能有比穷举搜索更有效的方法,但这些方法更先进。最好定义一个函数来计算一个数的除数(您已经在代码的一部分中这样做了),然后为不同的数调用duivisors函数,并检查它们是否友好。请注意,可能有比穷举搜索更有效的方法,而穷举搜索正是您在这里所做的,但这些方法更先进