Problem 007
素数を小さい方から6つ並べると 2, 3, 5, 7, 11, 13 であり, 6番目の素数は 13 である.
10001 番目の素数を求めよ
Answer 007 (Python)
class Problem7:
LIMIT = 10001
PRIME = []
def main(self):
i = 1
while(len(self.PRIME) < self.LIMIT):
i = i + 1
if self.isPrime(i):
self.PRIME.append(i)
print(self.PRIME[-1])
def isPrime(self, num):
for i in self.PRIME:
if num % i == 0:
return False
if i * i > num:
break
return True
if __name__ == '__main__':
p = Problem7()
p.main()
(参考) Project Euler とは
Project Euler はプログラミングで数学の問題を解くサイトです。問題は600問以上あるので、勉強に使うのも良し、楽しむのも良しです。
サイトに登録すれば、解答を submit することができ、その場であっているか判定してくれます。
また、問題だけであれば、日本語に翻訳された Wiki もあるのでそちらを見ながらやると捗ると思います。