gpt4 book ai didi

python - 寻找一个数的质因数

转载 作者:行者123 更新时间:2023-11-28 16:37:01 24 4
gpt4 key购买 nike

我试图找到 13195 的最大质因数:

def problem3():
divisors = []
primes = []
num = 13195
for a in range(2, num):
if num % a == 0:
divisors.append(a)
print divisors #This is the list of all divisors of the number
// At this point divisors looks like:
// [5, 7, 13, 29, 35, 65, 91, 145, 203, 377, 455, 1015, 1885, 2639]

print ""
primes = divisors
for elements in divisors:
for a in range(2,elements):
if elements % a == 0:
primes.remove(elements)
print divisors
break
print primes

这是我得到的输出:

[5, 7, 13, 29, 65, 145, 377, 1015, 2639]

因此它适用于前四个素数,但一旦它开始删除不是素数的数字,代码似乎会跳过检查除数列表中的下一个元素,并继续前进。为什么要这样做?

最佳答案

重要的一行是:

primes = divisors

这不会复制列表 - primesdivisors 的列表相同

所以当你这样做的时候

primes.remove(elements)

它等同于:

divisors.remove(elements)

通过元素搞乱了迭代,这就是它似乎跳过的原因。

关于python - 寻找一个数的质因数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24785563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com