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:

```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 &gt; 0):
sum +=powrs(int(n % 10), pw)
n /= 10
if sum &gt; 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

Categories: Programming Tags: ,
1. July 19, 2015 at 5:47 am

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

• July 19, 2015 at 10:21 am

Fixed the powers.

2. July 19, 2015 at 10:19 am

Thanks Hemanth for pointing out.