We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 88c438f commit 70def15Copy full SHA for 70def15
1 file changed
project_euler/problem_095/sol1.py
@@ -28,25 +28,17 @@
28
- Iterate over found some factors to find longest chain
29
"""
30
31
-from math import isqrt
+from math import isqrt, prod
32
33
34
-def sum_primes(factor_d, num):
+def sum_primes(primes_degrees: dict[int, int], num: int) -> int:
35
36
Calculates the sum of factors from all prime exponents.
37
38
- >>> sum_primes({2: 1, 3: 1}, 6)
+ >>> sum_primes(primes_degrees={2: 1, 3: 1}, num=6)
39
6
40
41
- tot = 1
42
- for p in factor_d:
43
- comp = 0
44
- ex_factor = 1
45
- for _ in range(factor_d[p] + 1):
46
- comp += ex_factor
47
- ex_factor *= p
48
- tot *= comp
49
- return tot - num
+ return prod((prime ** (degree + 1) - 1) // (prime - 1) for prime, degree in primes_degrees.items()) - num
50
51
52
def generate_primes(n: int):
0 commit comments