我写了一个非常简单的质数检查:
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")..。这似乎是有效的,但我不确定这是否是正确的方式,有人能确认一下吗?
发布于 2012-05-19 22:48:04
我不确定这是不是正确的方式
不是。举一个反例,它认为25是一个质数。更糟糕的是,有无限多这样的反例。
Wikipedia值得阅读各种(正确的)方法来实现这一点。
发布于 2012-05-19 22:50:56
简单到可以做到:
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有关令人印象深刻的素数生成器,请参阅here
发布于 2012-05-19 22:52:19
维基百科上关于primality的文章可以帮助你设计更好的算法。它们有很多,但基本的并不是那么复杂。
https://stackoverflow.com/questions/10666154
复制相似问题