5952279f0a95179805092da4c46b181144836914
ksnctf/20 G0091330.md
... | ... | @@ -0,0 +1,29 @@ |
1 | +## 解いた方針 |
|
2 | +- 10桁の素数が出てくるのがどれくらい珍しいことか分からなかったので、とりあえず愚直に実装してみる。 |
|
3 | +- 円周率は [円周率(PI) 100万(1,000,000)桁](https://www.tstcl.jp/ja/randd/pi.php) からダウンロードした。 |
|
4 | +- 実行したら結構な頻度で出てきた。 |
|
5 | + |
|
6 | +``` |
|
7 | +from sys import exit |
|
8 | + |
|
9 | +def is_prime(n): |
|
10 | + # https://somachob.com/python-is-prime/ |
|
11 | + if n < 2: |
|
12 | + return False |
|
13 | + |
|
14 | + for i in range(2, int(n**0.5) + 1): |
|
15 | + if n % i == 0: |
|
16 | + return False |
|
17 | + |
|
18 | + return True |
|
19 | + |
|
20 | +with open('pi-10oku.txt', mode='r') as f: |
|
21 | + p = f.read() |
|
22 | + p = p[2:] |
|
23 | + |
|
24 | + for i in range(len(p)): |
|
25 | + pi = int(p[i:i+10]) |
|
26 | + |
|
27 | + if is_prime(pi): |
|
28 | + print(pi) |
|
29 | +``` |
|
... | ... | \ No newline at end of file |