我似乎无法找到一种方法将一些倍数包含在我的非素数列表中。例如“15”“49”“9”被认为是素数。任何想法或更正?
number = int(input("Enter a number. "))
non_prime = []
prime = []
def isPrime(number):
for i in range(2,number):
if number % i == 0:
return False
else:
return True
def append(number):
for i in range(1,number+1):
if isPrime(i) == True:
prime.append(i)
else:
non_prime.append(i)
append(number)
print(non_prime)
print(prime)
print (len(prime))
答案 0 :(得分:3)
if number % i == 0:
return False
else:
return True
对于所有奇数,您的函数返回true,因为它检查它们是否可以在'if'子句中除以2,并且由于它们不能除以2,isPrime
返回True
。您可以执行以下操作:
def isPrime(number):
for i in range(2,number):
if number % i == 0:
return False
return True
如果一个数字可以退出for循环,它就不能被任何数字除以它,所以它是一个素数。