| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 38bad6b commit c5b376d
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,34 @@ | |||
| 1 | + """ Problem Statement (Digit Fifth Power ): https://projecteuler.net/problem=30 | ||
| 2 | + | ||
| 3 | + Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits: | ||
| 4 | + | ||
| 5 | + 1634 = 1^4 + 6^4 + 3^4 + 4^4 | ||
| 6 | + 8208 = 8^4 + 2^4 + 0^4 + 8^4 | ||
| 7 | + 9474 = 9^4 + 4^4 + 7^4 + 4^4 | ||
| 8 | + As 1 = 1^4 is not a sum it is not included. | ||
| 9 | + | ||
| 10 | + The sum of these numbers is 1634 + 8208 + 9474 = 19316. | ||
| 11 | + | ||
| 12 | + Find the sum of all the numbers that can be written as the sum of fifth powers of their digits. | ||
| 13 | + | ||
| 14 | + (9^5)=59,049 | ||
| 15 | + 59049*7=4,13,343 (which is only 6 digit number ) | ||
| 16 | + So, number greater than 9,99,999 are rejected | ||
| 17 | + and also 59049*3=1,77,147 (which exceeds the criteria of number being 3 digit) | ||
| 18 | + So, n>999 | ||
| 19 | + and hence a bound between (1000,1000000) | ||
| 20 | + """ | ||
| 21 | + | ||
| 22 | + | ||
| 23 | + def digitsum(s: str) -> int: | ||
| 24 | + """ | ||
| 25 | + >>> all(digitsum(str(i)) == (1 if i == 1 else 0) for i in range(100)) | ||
| 26 | + True | ||
| 27 | + """ | ||
| 28 | + i = sum(pow(int(c), 5) for c in s) | ||
| 29 | + return i if i == int(s) else 0 | ||
| 30 | + | ||
| 31 | + | ||
| 32 | + if __name__ == "__main__": | ||
| 33 | + count = sum(digitsum(str(i)) for i in range(1000,1000000)) | ||
| 34 | + print(count) # --> 443839 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments