素数判定のプログラムについて

実現したいこと

正整数を入力として受け取り,素数なら True, そうでないなら False を return 関数で返す関数を作りたい

前提

pythonの練習で上記の素数判定のプログラムを作りたいのですが、自身が書いたものだと9を入力しても素数であると判断されてしまいます。21を入力しても同様でした。この解決法となぜそうなっているのかを知りたいです。

発生している問題・エラーメッセージ

9
True

該当のソースコード

k

1def is_prime(k): 2 if int(k)<2: 3 return False 4 elif int(k) == 2: 5 return True 6 else: 7 for i in range(2,int(k)): 8 if int(k) % i == 0: 9 return False 10 break 11 return True 12 13is_prime(k)

試したこと

色々と手を加えてみましたがわかりませんでした。

補足情報(FW/ツールのバージョンなど)

また、ネット上では i の範囲を2からkの平方根としていますがなぜなのですか

コメントを投稿

0 コメント