我写了一个非常简单的质数检查程序:
prime = int(input())
if prime % prime == 0 and prime % 2 != 0 and prime % 3 != 0 or prime == 2 or prime == 3:
print("true")
else:
print("false")
...这种方法似乎可以,但我不确定是否正确,请有人确认一下吗?
def isprime(n):
"""check if integer n is a prime"""
# range starts with 2 and only needs to go up the squareroot of n
for x in xrange(2, int(n**0.5)+1):
if n % x == 0:
return False
return True
如果你想要一个令人印象深刻的质数生成器,可以参考这里
素数的维基百科文章可以帮助您设计更好的算法。有许多算法,但基本算法并不那么复杂。
首先,我们需要明确一个质数必须是大于1的正整数。这个不变量意味着如果n小于2,你可以立即返回false。在你的代码中,n=0会失败。
prime % prime == 0
?这不是模运算符吗?它每次都会返回0。 - keyser0
吗? - jamylak