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 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.

  2. July 19, 2015 at 10:19 am

    Thanks Hemanth for pointing out.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: