24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 1522  |  回复: 12
本帖产生 3 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

holmescn

金虫 (正式写手)

[交流] Euler 工程 第三十题已有5人参与

又是一个指数的题啦!

说有3个数可以写成各位数字的4次方的和:

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

虽然 1 = 1^4, 但这不是一个求和, 所以这个不算.

这三个数的和为: 1634 + 8208 + 9474 = 19316

那么那些数可以写成各位数字的5次方的和呢? 这些数的和又是多少?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)


dubo(金币+1): 欢迎常来程序语言版讨论 2011-06-19 15:30:25
引用回帖:
Originally posted by libralibra at 2011-06-18 16:31:38:
我也是py
[code] from mytictoc import tic,toc

tic()

# find upper bound
n = 1
while n*(9**5)>10**(n+1)-1:
    n += 1

# compute
print reduce(lambda x,y:x+y,[n for n in xrange(2,n*(9** ...

libralibra兄, reduce 比sum 要快吗?
5楼2011-06-18 18:00:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

holmescn

金虫 (正式写手)

★ ★ ★
余泽成(金币+3, 程序强帖+1): 鼓励交流! 2011-06-18 15:52:24
Python
CODE:
# coding: utf-8

r = 0
n = 9**5 * 5

for i in xrange(2, n):
    s = sum([int(x)**5 for x in str(i)])
    if i == s:
        r += i
        print i
print "sum =", r

结果:
引用回帖:
4150
4151
54748
92727
93084
194979
sum = 443839

[ Last edited by holmescn on 2011-6-18 at 14:02 ]
2楼2011-06-18 14:00:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励交流! 2011-06-18 15:52:37
这个不是水仙花数嘛~
传说中的恐怖O(10^n)问题。位数大一些就要筛数了。
咋一看,两边的解空间是一样的,大约都是9*10^(n-1),但是左边的解空间是紧凑的,右边的则是松散的,而且,右边的解空间映射到左边的范围不是很大,筛数从右边开始,这样就需要给出一个函数的上下限,比如要求出最接近100和1000的a^3+b^3+c^3。对于这样的线性规划问题可以在10*10*n的时间内找到最优解,然后调用欧拉24题给出的那种以字典序计数的排列函数来求解,应该效率会不错。

[ Last edited by huycwork on 2011-6-18 at 15:29 ]
漩涡的中心有一块空地,空空的。
3楼2011-06-18 15:22:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
xzhdty(金币+2): 鼓励交流! 2011-06-18 22:06:27
我也是py
CODE:
from mytictoc import tic,toc

tic()

# find upper bound
n = 1
while n*(9**5)>10**(n+1)-1:
    n += 1

# compute
print reduce(lambda x,y:x+y,[n for n in xrange(2,n*(9**5)) if n==reduce(lambda x,y:x+y,[int(c)**5 for c in str(n)])])

toc()

效率低下
CODE:
443839
Elapsed time: 5.64833575 seconds

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2011-06-18 16:31:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见