2020年1月25日土曜日

Project EulerにチャレンジするためのSnippet(素数関係)

計算機で数学的な問題を解くEuler Projectという面白い学習ネタを発見。
答え合わせできるサイト: (捜索中)

まだ10個くらいしか解けていないけど、素数とか公約数公倍数とか似たようなコードを何度も使うのでSnippetを貯めていこうと思う。

手始めに、素数関係2つ。
n番目までの素数リストを返す関数と、素数判定関数。
とりあえずPythonで。

def PrimeNumList(n):
  primeNumList = [2]
  i = 3
  while len(primeNumList) < n:
    for d in primeNumList:
      if i%d == 0:
        i+=2
        break
      if i**0.5<d:
        primeNumList.append(i)
        i+=2
        break
  return primeNumList
def isPrime(n):
  if n == 2:
    return True
  elif n < 2 or n&1 == 0:
    return False
  for i in range(3, 1+int(n**0.5), 2):
    if n%i == 0:
      return False
    return True

0 件のコメント:

コメントを投稿