私はこの非常に単純な素数チェックを書きました:
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
印象的な素数ジェネレータについては、こちらを参照してください
それが正しい方法かどうかはわかりません
そうではありません。反例を一つあげると、それ25
は素数だと思います。さらに悪いことに、そのような反例は無数にあります。
ウィキペディアは、これを行うためのさまざまな (正しい) 方法について読む価値があります。
素数性に関するウィキペディアの記事は、より優れたアルゴリズムを設計するのに役立ちます。それらはたくさんありますが、基本的なものはそれほど複雑ではありません。