File tree Expand file tree Collapse file tree 1 file changed +7
-5
lines changed
project_euler/problem_095 Expand file tree Collapse file tree 1 file changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -95,13 +95,15 @@ def multiply(
9595
9696 min_prime = primes [min_prime_idx ]
9797 num = prev_num * min_prime
98- primes_degrees [min_prime ] = primes_degrees .get (min_prime , 0 ) + 1
99- if prev_num % min_prime != 0 :
100- new_sum = prev_sum * (min_prime + 1 ) + prev_num
101- else :
102- new_sum = prev_sum * (min_prime + 1 ) + prev_num
98+
99+ min_prime_degree = primes_degrees .get (min_prime , 0 )
100+ min_prime_degree += 1
101+ primes_degrees [min_prime ] = min_prime_degree
102+
103+ new_sum = (prev_sum * (min_prime ** (min_prime_degree + 1 ) - 1 ) + prev_num * (min_prime ** min_prime_degree - 1 )) // (min_prime - 1 )
103104 assert new_sum == sum_primes (primes_degrees = primes_degrees , num = num )
104105 chain [num ] = new_sum
106+
105107 for prime_idx in range (min_prime_idx , len (primes )):
106108 num_n = primes [prime_idx ] * num
107109 if num_n > max_num :
You can’t perform that action at this time.
0 commit comments