読者です 読者をやめる 読者になる 読者になる

素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

素数を探す

python

Pythonのrange関数は、個数が決まっていないと使えないので、無限ループして条件が揃ったらbreak、みたいな使いかたができない。
なので、infrange関数を作っておくと便利かもしれない。

def infrange(start = 0, step = 1):
  while True:
    yield start
    start += step

def primes(max):
  ret = []
  for i in infrange(2):
    for j in range(2, i):
      if i % j == 0:
        break
    else:
      ret.append(i)
    if len(ret) >= max:
      break
  return ret

primes(10)
#[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]