File tree Expand file tree Collapse file tree 1 file changed +14
-8
lines changed
project_euler/problem_014 Expand file tree Collapse file tree 1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change @@ -25,31 +25,37 @@ def solution(n: int = 1000000) -> int:
2525 n → n/2 (n is even)
2626 n → 3n + 1 (n is odd)
2727
28- # The code below has been commented due to slow execution affecting Travis.
29- # >>> solution(1000000)
30- # 837799
28+ >>> solution(1000000)
29+ 837799
3130 >>> solution(200)
3231 171
3332 >>> solution(5000)
3433 3711
3534 >>> solution(15000)
3635 13255
3736 """
38- largest_number = 0
39- pre_counter = 0
37+ largest_number = 1
38+ pre_counter = 1
39+ counters = {1 : 1 }
4040
41- for input1 in range (n ):
42- counter = 1
41+ for input1 in range (2 , n ):
42+ counter = 0
4343 number = input1
4444
45- while number > 1 :
45+ while True :
46+ if number in counters :
47+ counter += counters [number ]
48+ break
4649 if number % 2 == 0 :
4750 number //= 2
4851 counter += 1
4952 else :
5053 number = (3 * number ) + 1
5154 counter += 1
5255
56+ if input1 not in counters :
57+ counters [input1 ] = counter
58+
5359 if counter > pre_counter :
5460 largest_number = input1
5561 pre_counter = counter
You can’t perform that action at this time.
0 commit comments