mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-02-25 18:38:39 +00:00
Solution for problem 30 of Euler Project (#1690)
* Create soln.py Solution for problem 30 of Euler Project * Update soln.py * update soln.py modified the changes * if __name__ == "__main__": Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
38bad6b1e8
commit
c5b376d52d
34
project_euler/problem_30/soln.py
Normal file
34
project_euler/problem_30/soln.py
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
""" Problem Statement (Digit Fifth Power ): https://projecteuler.net/problem=30
|
||||||
|
|
||||||
|
Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits:
|
||||||
|
|
||||||
|
1634 = 1^4 + 6^4 + 3^4 + 4^4
|
||||||
|
8208 = 8^4 + 2^4 + 0^4 + 8^4
|
||||||
|
9474 = 9^4 + 4^4 + 7^4 + 4^4
|
||||||
|
As 1 = 1^4 is not a sum it is not included.
|
||||||
|
|
||||||
|
The sum of these numbers is 1634 + 8208 + 9474 = 19316.
|
||||||
|
|
||||||
|
Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.
|
||||||
|
|
||||||
|
(9^5)=59,049
|
||||||
|
59049*7=4,13,343 (which is only 6 digit number )
|
||||||
|
So, number greater than 9,99,999 are rejected
|
||||||
|
and also 59049*3=1,77,147 (which exceeds the criteria of number being 3 digit)
|
||||||
|
So, n>999
|
||||||
|
and hence a bound between (1000,1000000)
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
def digitsum(s: str) -> int:
|
||||||
|
"""
|
||||||
|
>>> all(digitsum(str(i)) == (1 if i == 1 else 0) for i in range(100))
|
||||||
|
True
|
||||||
|
"""
|
||||||
|
i = sum(pow(int(c), 5) for c in s)
|
||||||
|
return i if i == int(s) else 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
count = sum(digitsum(str(i)) for i in range(1000,1000000))
|
||||||
|
print(count) # --> 443839
|
Loading…
x
Reference in New Issue
Block a user