機械学習を扱えるようになるべく、
GCIデータサイエンティスト育成講座演習コンテンツを進めています。
http://weblab.t.u-tokyo.ac.jp/gci_contents/
pythonの基礎からデータサイエンスを学べる無料の素晴らしい講座です。
これで俺も強くなるんだと思いやり始めました…!
第1回のまとめ問題である。素数判定プログラムです。
・以下を考慮しつつ、とにかく割って試して素数判定していく。
・2〜n-1 の範囲では約数は一つも存在しないため、2〜n-1約数が出たらその数は素数ではないので次に行く。
※nは判定対象の数
・約数かどうかの判定を行うのは素数だけでokのため、素数を保持しておく。
(4で割れるなら2でわれる、49で割れるなら7で割れるというような関係があるため)
def check_sosuu(n):
if n < 3:
return ['You must input learger than 2']
else:
num_list = [2]
for i in range(3,n-1):
num_mod_zero = 0
if i > 1:
for j in num_list:
if j > 1:
if i % j == 0:
num_mod_zero += 1
break
if num_mod_zero == 0:
num_list.append(i)
return num_list
出来るだけ高速になるように考えてはみましたが、世の中にはそれはそれは高速なアルゴリズムがあるそうです。世の中広いよ…
http://szarny.hatenablog.com/entry/2017/09/21/232855