Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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
我编写的python3素因子函数并没有像我预期的那样工作 def primeF(n): x=2 因素:列表[int]=[] 而(x_Python_Arrays_Python 3.x_Function - Fatal编程技术网

我编写的python3素因子函数并没有像我预期的那样工作 def primeF(n): x=2 因素:列表[int]=[] 而(x

我编写的python3素因子函数并没有像我预期的那样工作 def primeF(n): x=2 因素:列表[int]=[] 而(x,python,arrays,python-3.x,function,Python,Arrays,Python 3.x,Function,当我运行这段代码时总是有一个错误,但我不确定为什么。错误消息如下: 回溯(最近一次呼叫最后一次): 文件“C:/Users/User/untitled/EulerQs.py”,第41行,在 在primeF中打印(primeF(6))文件“C:/Users/User/untitled/EulerQs.py”,第38行 因子。附加(x)MemoryError 我不知道这是什么意思。如果有什么不同的话,我会使用PyCharm。如评论中所述,崩溃的原因是外部while循环永远不会结束,因为x的增量在该循

当我运行这段代码时总是有一个错误,但我不确定为什么。错误消息如下:

回溯(最近一次呼叫最后一次):
文件“C:/Users/User/untitled/EulerQs.py”,第41行,在 在primeF中打印(primeF(6))文件“C:/Users/User/untitled/EulerQs.py”,第38行 因子。附加(x)MemoryError


我不知道这是什么意思。如果有什么不同的话,我会使用PyCharm。

如评论中所述,崩溃的原因是外部while循环永远不会结束,因为
x
的增量在该循环之外。只需将缩进更改为将
x=x+1
放在循环中即可

另一件有用的事情是自动写出一系列数字的结果。然后您将看到,每当
n
本身是素数时,函数都会给出一个空列表。因此,在外部while循环的停止条件下,还应该考虑
x==n

更改此选项后,代码如下所示:

def primeF(n):
x=2
因子=[]

while(x)欢迎使用SO!缩进问题:
x=x+1
不在while循环中,因此
因子。append(x)
会破坏您的内存。请尝试打印值以捕获类似这样的错误--您会看到
因子只会以相同的素数不断增长(可能是2)无限期重复。投票以键入错误的方式结束。是的,正如@ggorlen指出的,你可以看到
x
在你的循环中永远不会增加,所以当
x时,你可以做的另一件事是
while(x
while(x)谢谢大家的回复!如果没有你,我不会意识到这一点。谢谢你的快速回复和详细解释的解决方案。你帮了大忙
def primeF (n):
    x = 2
    factors: List[int] = []
    while (x < n):
        y = 2
        flag = 0
        while (y < x):
            if (x % y == 0):
                flag = 1
            y = y + 1
        if (n % x == 0 and flag == 0):
            factors.append(x)
    x = x + 1
    return factors
primeF(6)
0 has as prime factors: []
1 has as prime factors: []
2 has as prime factors: [2]
3 has as prime factors: [3]
4 has as prime factors: [2]
5 has as prime factors: [5]
6 has as prime factors: [2, 3]
7 has as prime factors: [7]
8 has as prime factors: [2]
9 has as prime factors: [3]
10 has as prime factors: [2, 5]