実現したいこと
カーマイケル数でも、素数と判定されるようにしたい。
発生している問題・分からないこと
フェルマーテストを実装しているのですが、素数ではないが、フェルマーテストだと素数だと判定されるカーマイケル数を指定すると、素数でないと出力されてしまう。
該当のソースコード
Python
1import math 2import random 3 4 5def is_prime(n): 6 if n == 1: return False 7 if n == 2: return True 8 9 for i in range(100): #100は試行回数 10 a = random.randint(2,n-1) 11 12 if math.gcd(n,a) != 1: 13 return False 14 15 if pow(a,n-1,n) != 1: 16 return False 17 18 return True
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
同様の質問が見つからない。
補足
特になし

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。