所以我定义了一个函数来检查一个数字是否素数:
def prime(num):
if num > 1:
for i in range(2, num // 2):
if num % i == 0:
print(False)
break
else:
print(True)
else:
print(False)
它将返回True或False。我需要在我的程序中使用此函数。用途如下:
for i in range(0,45): #sample
if prime(i) == True:
print(i)
它所做的是以真/假的形式打印输出,但我需要的是数字本身
这是怎么回事。我如何纠正它,因为我必须使用prime()
函数来做与上面相同的事情
将函数更改为:
def prime(num):
if num > 1:
for i in range(2, (num // 2)+1):
if num % i == 0:
return False
else:
return True
else:
return False
在python中有比这更好的方法来查找素数。试试这个:
import math
def prime(n):
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True