这是问题链接project euler ,problem no. 21
我的代码是在python中,
def d(n):
A=[]
x=0
y=0
for i in range(1,n/2+1):
if n%i==0:
A.append(i)
for i in A:
x+=i
B=[]
for i in range(1,x/2+1):
if x%i==0:
B.append(i)
for i in B:
y+=i
if y==n:
return 1
else:
return 0
sum=0
for j in range(1,10000):
if d(j)==1:
sum+=j
print sum
我的答案是40284
它显示错误,任何人都可以给我原因
答案 0 :(得分:1)
仔细阅读说明:
如果d(a)= b且d(b)= a,其中a≠b ,那么a和b是友好的 对和a和b中的每一个都称为友好数字。
您无法检查此约束。在代码中的某处插入if x == n: return 0
,结果应该是正确的。