下面的代码不断告诉我一个错误的数字,我不明白为什么,知道这是蛮力,但它应该仍然有效......它返回的数字的确超过了500个因子,确切地说512,帮助将是非常感谢euler挑战12,为什么这个python代码失败?
Number = 1
Count = 2
Found = False
while Found == False:
Divisors = 0
if (Number % 2) != 0:
for i in range(1, int(Number**(1/2)), 2):
if Number % i == 0:
Divisors += 1
else:
for i in range(1, int(Number**(1/2))):
if Number % i == 0:
Divisors += 1
if Divisors >= 500:
print (Number)
Found = True
else:
Number += Count
Count += 1
参考:Problem 12 from the Euler Challange
我认为,即使按照您的意图工作,您将会遇到问题。因为你的数字是1到1/2,所以你不会把数字本身作为除数。这可能不会影响你的答案,但我想你想知道。如果我在这里,请告诉我,我不熟悉python。 – Toast