Skip to content

Commit e369876

Browse files
committed
problem 50
1 parent e4f6d4f commit e369876

2 files changed

Lines changed: 21 additions & 17 deletions

File tree

Problems/050/solution.py

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,31 @@
44
sys.path.append(os.getcwd())
55

66
from Utilities import primes
7-
from itertools import accumulate
87

98
def main():
109

11-
prime_numbers = primes.primes_up_to(1000000)
12-
prime_sums_cumulative = list(accumulate(prime_numbers))
10+
prime_number_list = list(primes.primes_up_to(1000000))
1311
# for faster lookups
14-
prime_number_set = set(prime_numbers)
12+
prime_number_set = set(prime_number_list)
1513

16-
max_consecutives = 0
14+
max_sequence_length = 0
1715
corresponding_prime = 0
1816

19-
for s1 in prime_sums_cumulative:
20-
for s2 in prime_sums_cumulative:
21-
if s1 - s2 > 1000000:
17+
chain = []
18+
19+
for index, prime in enumerate(prime_number_list):
20+
sequence_length = 0
21+
total = 0
22+
for sub_prime in prime_number_list[index:]:
23+
total += sub_prime
24+
if total > 1000000:
2225
break
23-
if s1 - s2 in prime_number_set:
24-
print(s1-s2)
25-
number_consecutives = prime_sums_cumulative.index(s1) - prime_sums_cumulative.index(s2)
26-
if number_consecutives > max_consecutives:
27-
max_consecutives = number_consecutives
28-
corresponding_prime = prime_numbers[prime_sums_cumulative.index(s1)]
26+
27+
sequence_length += 1
28+
if total in prime_number_set and sequence_length > max_sequence_length:
29+
max_sequence_length = sequence_length
30+
corresponding_prime = total
31+
2932
return corresponding_prime
3033

3134
if __name__=='__main__':

confirm-solutions.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,12 @@
5858
"045": 1533776805,
5959
"046": 5777,
6060
"047": 134043,
61-
"048": 9110846700,
62-
"049": "629929699629",
61+
"048": "9110846700",
62+
"049": "296962999629",
63+
"050": 997651,
6364
}
6465

65-
# lambda filter to remove the __pycache__ dir, __init__ file from consideration
66+
# filter to remove the __pycache__ dir, __init__ file from consideration
6667
problems = sorted(filter(lambda x: x.isdigit(), os.listdir("Problems")))
6768
for problem_number in problems:
6869
path = os.path.join("Problems", problem_number, "solution")

0 commit comments

Comments
 (0)