Skip to content

Commit f8fd826

Browse files
authored
improvements for project euler task 63
1 parent 8ddd7c2 commit f8fd826

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

Diff for: project_euler/problem_63/sol1.py

+12-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""
2-
The 5-digit number, 16807=75, is also a fifth power. Similarly, the 9-digit number,
3-
134217728=89, is a ninth power.
2+
https://projecteuler.net/problem=63
3+
4+
The 5-digit number, 16807=7**5, is also a fifth power. Similarly, the 9-digit number,
5+
134217728=8**9, is a ninth power.
46
How many n-digit positive integers exist which are also an nth power?
57
"""
68

@@ -11,7 +13,7 @@
1113
"""
1214

1315

14-
def compute_nums(max_base: int = 10, max_power: int = 22) -> int:
16+
def compute_nums(max_base: int, max_power: int) -> int:
1517
"""
1618
Returns the count of all n-digit numbers which are nth power
1719
>>> compute_nums(10, 22)
@@ -25,10 +27,13 @@ def compute_nums(max_base: int = 10, max_power: int = 22) -> int:
2527
"""
2628
bases = range(1, max_base)
2729
powers = range(1, max_power)
28-
return sum(
29-
1 for power in powers for base in bases if len(str((base ** power))) == power
30-
)
30+
return sum(1 for power in powers for base in bases if len(str((base ** power))) == power)
31+
32+
33+
def solution(max_base: int = 10, max_power: int = 22) -> int:
34+
"""Returns the count of all n-digit numbers which are nth power."""
35+
return compute_nums(max_base, max_power)
3136

3237

3338
if __name__ == "__main__":
34-
print(f"{compute_nums(10, 22) = }")
39+
print(f"{solution(10, 22) = }")

0 commit comments

Comments
 (0)