Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的程序停止为大值工作?_Python - Fatal编程技术网

Python 为什么我的程序停止为大值工作?

Python 为什么我的程序停止为大值工作?,python,Python,嗨,我写这个程序是为了回答以下问题: “数字600851475143中最大的素因子是什么?” 该程序适用于13195的“composite”,但如果我将其设置为600851475143,则该程序不起作用 为什么会发生这种情况 composite = 600851475143 for m in range (2,composite): while composite % m == 0: if composite / m == 1: break

嗨,我写这个程序是为了回答以下问题:

“数字600851475143中最大的素因子是什么?”

该程序适用于13195的“composite”,但如果我将其设置为600851475143,则该程序不起作用

为什么会发生这种情况

composite = 600851475143
for m in range (2,composite):
    while composite % m == 0:
        if composite / m == 1:
            break
        else:
            composite = composite / m
print(composite)

问题在于这一行的组合:

for m in range (2,composite):
    composite = composite / m
这一行:

for m in range (2,composite):
    composite = composite / m
循环时,范围不会重新计算。有关更多详细信息,请参见此问题:

相反,您的代码应该如下(以解决该问题):

composite=600851475143
m=2
而m
请详细说明“不起作用”。您使用什么风格的python?在Python3中,您的代码不会执行您期望它执行的操作。您有一个6000亿次的迭代外循环。这不会很快结束的,对不起。当我说它不起作用时,我的意思是说什么也没发生。程序运行时的“composite”值不够大。可能是