-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path50.nim
More file actions
47 lines (42 loc) · 939 Bytes
/
Copy path50.nim
File metadata and controls
47 lines (42 loc) · 939 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import bigints
import std/sequtils
import patty
import std/options
import std/math
import strutils
import std/algorithm
const MOD: int = 1000000000
const MAX: int64 = 100
iterator `..`*[T](a: T, b: T): T =
var res: T = a
while res <= b:
yield res
inc res
var is_prime: array[1000000, bool]
for i in 0..len(is_prime) - 1 :
is_prime[i] = true
is_prime[0] = false
is_prime[1] = false
var primes: seq[int]
for i in 2..len(is_prime) - 1 :
if is_prime[i] :
var j = 2 * i
while j < len(is_prime) :
is_prime[j] = false
j += i
primes.add(i)
var pref: seq[int]
pref.add(0)
for i in 0..len(primes) - 1 :
pref.add(pref[len(pref) - 1] + primes[i])
var ans = 0
var ind = 0
for i in 0..len(primes) - 1 :
for j in i..len(primes) - 1 :
if pref[j] - pref[i] >= 1000000 :
break
if is_prime[pref[j] - pref[i]] :
if ans < j - i :
ans = j - i
ind = pref[j] - pref[i]
echo ind