解いた方針

  • 10桁の素数が出てくるのがどれくらい珍しいことか分からなかったので、とりあえず愚直に実装してみる。
  • 円周率は 円周率(PI) 100万(1,000,000)桁 からダウンロードした。
  • 実行したら結構な頻度で出てきた。
from sys import exit

def is_prime(n):
    # https://somachob.com/python-is-prime/
    if n < 2:
        return False

    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False

    return True

with open('pi-10oku.txt', mode='r') as f:
    p = f.read()
    p = p[2:]
    
    for i in range(len(p)):
        pi = int(p[i:i+10])

        if is_prime(pi):
            print(pi)