Euler: Digit fifth powers

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.

Methods:
1. Write a function to judge whether a number can be writtern as sum of fifth powers of their digits.
2. Compute the possible range of the numbers. Assume the number have 7 digits, the maximum sum of fifth powers of 7 digits is 7 * (9^5) = 413343. It just has 6 digits. So the number cannot has more than 6 digits.

import math

def fifth(n):
    sum = 0
    n_str = str(n)
    for i in n_str:
        sum +=  pow(int(i), 5)
    if sum == n:
        print n
        return True
    else:
        return False

def main():
    count = 0
    for i in range(2, 999999):
        if fifth(i):
            count += i
    print "sum is ", str(count)
    return

if __name__ == "__main__":
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值