Skip to content

Commit e5a2fbf

Browse files
Update sol1.py
1 parent 41a91c7 commit e5a2fbf

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

project_euler/problem_095/sol1.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff 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:

0 commit comments

Comments
 (0)