-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path50.py
More file actions
57 lines (47 loc) · 1.02 KB
/
50.py
File metadata and controls
57 lines (47 loc) · 1.02 KB
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
48
49
50
51
52
53
54
import euler
sieve = euler.sieve_of_eratosthenes(1000000)
sieve_dic = euler.list_to_dic(sieve)
def longest_sum(base_ptr, num_terms):
return sum([sieve[i+base_ptr] for i in range(num_terms)])
def longest_sum_given_num_term(num_terms):
base_ptr = 0
max_val = 0
while(True):
s = longest_sum(base_ptr, num_terms)
print (s)
if s >= 100 and base_ptr == 0:
return -1
if s >= 100:
break
if s >= max_val and s in sieve_dic:
max_val = s
base_ptr += 1
return max_val
def main():
num_terms = 2
max_val = 0
max_terms = 2
while(True):
s = longest_sum_given_num_term(num_terms)
if s == -1:
break
if num_terms >= max_terms:
max_val = s
max_terms = num_terms
num_terms += 1
print max_val, max_terms
main()
# def main():
# num_terms = 2
# while(True):
# base_ptr = 0
# while (True):
# s = longest_sum(base_ptr,num_terms)
# if s >= 100 and base_ptr == 0:
# break
# if s in sieve_dic and s >= max_val:
# max_val = s
# base_ptr += 1
# num_terms += 1
# return s
# print main()