gpt4 book ai didi

python - 如何创建一段代码来检查一个数的最大质因数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:21 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来检查一个数的最大质因数。出现此错误消息时,我几乎完成了。 列表索引超出范围。

这是什么意思,我的代码有什么问题?

这是我的代码。

def is_prime(n):
for i in range(3, n):
if n % i == 0:
return False
return True

def Problem3():
x = 144
n = 2
not_a_factor = []
z = []
prime = []
not_a_prime = []
while n < x:
if x%n == 0:
z.append(n)
else:
not_a_factor.append(n)
n = n + 1
for i in z:
if is_prime(z[i]) == True:
prime.append(z[i])
else:
not_a_prime.append(z[i])
print(prime)
Problem3()

最佳答案

你只是有点偏离。 Python 中的 for 循环迭代一个对象并返回它的实体,而不是指针/索引。

所以只要使用你从'z'的每次迭代中得到的东西

(旁注:可能需要查看这个 post ,它将帮助您提高 is_prime 函数的性能)

def is_prime(n):
for i in range(3, n):
if n % i == 0:
return False
return True

def Problem3():
x = 144
n = 2
not_a_factor = []
z = []
prime = []
not_a_prime = []
while n < x:
if x%n == 0:
z.append(n)
else:
not_a_factor.append(n)
n =+ 1 # Python version of n++
for i in z: # Python for-loop is more like a say "for each", no need for the indexing
if is_prime(i): # no need for '=='; Python will 'truthify' your object
prime.append(i)
else:
not_a_prime.append(i)
print(prime)
Problem3()

关于python - 如何创建一段代码来检查一个数的最大质因数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36168498/

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