您好我写了这个程序以回答以下问题:
" 600851475143号码的最大主要因素是什么?"
该计划适用于"复合"等于13195,但如果我将其设置为600851475143则不起作用。
为什么会这样?
composite = 600851475143
for m in range (2,composite):
while composite % m == 0:
if composite / m == 1:
break
else:
composite = composite / m
print(composite)
答案 0 :(得分:2)
问题是这一行的组合:
for m in range (2,composite):
和这一行:
composite = composite / m
循环时,范围不会重新计算。有关详细信息,请参阅此问题:Changing the number of iterations in a for loop
相反,您的代码应该是以下内容(以解决该问题):
composite = 600851475143
m = 2
while m < composite:
while composite % m == 0:
print(composite, m)
if composite / m == 1:
break
else:
composite = composite / m
m += 1
~