ksnctf 20 G00913
first 10-digit prime found in consecutive digits of π
円周率の中で、最初の10桁の素数を見つけよ。
素数判定いろいろ - シンプルな判定と、素数の分布 - Qiita
上のリンクのsimple_prime_test.pyで素数判定処理がありますのでそれを拝借させていただきます。
import math def is_prime(n): if n == 1: return False for k in range(2, int(math.sqrt(n)) + 1): if n % k == 0: return False return True #円周率 とりあえず100桁 pi = "31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679" x = 0 while(x < 90): num = int(pi[x:x+10]) #10桁の円周率を抽出 if(is_prime(num)): print(num) break x += 1