Project Euler Problem 30

本文探讨了一类特殊的整数,这类整数等于其每位数字的五次方之和。通过对数字范围的分析,确定了搜索边界,并通过编程实现了对这类特殊整数的查找,最终计算出了所有符合条件的整数之和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 = 14 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.
# 寻找一些数,他们各位数的5次方相加等于自身,求这些数的和。
i = 2
sum1 = 0
while i < 360000:
    string = str(i)
    l = [(int(x))**5 for x in string]
    if i == sum(l):
        print(i)
        sum1 += i
    i += 1
print(sum1)

思路:如果这个数为7位数,它一定小于7*9!=413343,所以这样的数不会是7位数或更大
         如果这个数为6位数,它一定小于6*9!=354294,所以搜索上界就是它

结果:443839

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值