Home
> Programming > Project euler 30: Digit fifth powers

## Project euler 30: Digit fifth powers

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.

Solution:

It is straight forward answer.

def powrs(n, pw): prod = 1 for i in range(0, pw): prod *= n return int(prod) def sumdigitpows(n, pw): sum = 0 orig = n while (n > 0): sum +=powrs(int(n % 10), pw) n /= 10 if sum > orig: return 0 return int(sum) def fifthpowers(): pw = 5 sum = 0 for i in range(1000, 10000000): if i == sumdigitpows(i, pw): sum += i print (i) print ("Answr: %s" % str(sum)) if __name__ == '__main__': fifthpowers()

Answr: 443839

Advertisements

Categories: Programming
algorithm, project euler

Good to see Narcissistic Numbers. I think power Symbol missing Vasanth, 1634 = 1^4 + 6^4 + 3^4 + 4^4.

Fixed the powers.

Thanks Hemanth for pointing out.