1
1
"""
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.
4
6
How many n-digit positive integers exist which are also an nth power?
5
7
"""
6
8
11
13
"""
12
14
13
15
14
- def compute_nums (max_base : int = 10 , max_power : int = 22 ) -> int :
16
+ def compute_nums (max_base : int , max_power : int ) -> int :
15
17
"""
16
18
Returns the count of all n-digit numbers which are nth power
17
19
>>> compute_nums(10, 22)
@@ -25,10 +27,13 @@ def compute_nums(max_base: int = 10, max_power: int = 22) -> int:
25
27
"""
26
28
bases = range (1 , max_base )
27
29
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 )
31
36
32
37
33
38
if __name__ == "__main__" :
34
- print (f"{ compute_nums (10 , 22 ) = } " )
39
+ print (f"{ solution (10 , 22 ) = } " )
0 commit comments