收到错误:尝试打印数字的素数时,float对象无法解释为整数

时间:2019-07-05 23:59:17

标签: python python-3.x

我正在尝试打印一个数字的所有素数的列表,假设如果数字是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))

1 个答案:

答案 0 :(得分:3)

在此行:

 n= n/2

您正在创建一个浮动。改用整数除法:

n = n // 2

此外,此代码不会为您提供n的主要因素;并非每个奇数都是质数(9、15等)。您在正确的轨道上;查看here,了解适用的解决方案。