pythonとアルゴリズムの勉強かねがね、素数判定器を実装してみました。
入力値が1、2のときはTrue、2の倍数のときはFalseを返します。
入力値が3以上のときは「入力値の1/2乗+1」まで割り算を行って、一度も割り切れなければ素数と判定します。
prime_number.py
def prime_number(number):
"""素数判定プログラム.
戻り値
素数:True
素数ではない:False
"""
# 1,2,偶数は結果をそのまま返却
if number == 1:
return False
elif number == 2:
return True
elif number % 2 == 0:
return False
else:
pass
# 3以上の奇数は入力値の1/2乗+1まで除算を行う
for i in range(3,int(number ** (1 / 2)) + 1):
if number % i == 0:
# 一度でも割り切れたら素数ではない
return False
# 一度も割り切れなければ素数
return True
# 数値を入力するとTrue/Falseが返却される
number = 13
print(number, prime_number(number))
ans = {}
for i in range(100):
ans[str(i)] = prime_number(i)
for k, v in ans.items():
if v == True:
print(k)