我正在尝试打印一个数字的所有素数的列表,假设如果数字是56,那么2,2,2,7是素数。
我编写了以下代码,但出现错误:无法将float对象解释为整数
不确定代码有什么问题。非常感谢您的见解。
a=[]
def prime(n):
# Checking for the number of number 2's
while(n%2==0):
a.append(2)
n= n/2
# Checking for odd prime factors (3,5,7......)
for i in range(3,n,2):
if(n%i==0):
a.append(i)
return a
print(prime(56))
答案 0 :(得分:3)
在此行:
n= n/2
您正在创建一个浮动。改用整数除法:
n = n // 2
此外,此代码不会为您提供n
的主要因素;并非每个奇数都是质数(9、15等)。您在正确的轨道上;查看here,了解适用的解决方案。