24小时热门版块排行榜    

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

wangww2011

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+3, 程序强帖+1): 把算法也贴一下吧,这样大家交流起来也方便,呵呵…… 2012-02-20 07:59:57
貌似以前做过,不过忘了。
继续python中,但是python的官网居然都被墙了是不是?幸好*unix/mac都预装的有python,win7不清楚,xp是肯定没有了,据说win8预装。
结果
CODE:
997651

代码
CODE:
#!/usr/bin/env python

def generate_primes(n):
    isprimes=[True]*n
    for i in range(2,n):
        if isprimes[i]:
            for j in range(2*i,n,i):
                isprimes[j] = False
    primes=[i for i in range(3,n,2) if isprimes[i]]
    primes.insert(0,2)
    return primes


def euler50(num):
    p=generate_primes(num)
    max_n=1
    while sum(p[:max_n])         max_n+=1
   
    for i in range(max_n,2,-1):
        for j in range(len(p)-i):
            tmp=sum(p[j:j+i])
            if tmp>num:break
            if tmp in p:
                return tmp
        
if __name__ == "__main__":
    print euler50(1000000)

[ Last edited by wangww2011 on 2012-2-20 at 03:45 ]
3楼2012-02-20 03:43:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

libralibra

至尊木虫 (著名写手)

骠骑将军


小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励交流! 2012-02-25 04:40:50
大家过完年啦,哈哈,又有空玩了
matlab code
CODE:
% Elapsed time is 0.083633 seconds.
% ans =
%       997651
function result = euler50()
tic;
result = 0;
maxLen = 0;

ap = primes(1e6);

sumlist = cumsum(ap);
sumlist(sumlist>=1e6) = [];

maxLen = 21;
for i=1:length(sumlist)
    for j=i+maxLen:length(sumlist)
        temp = sumlist(j)-sumlist(i);
        if isprime(temp) && (j-i)>maxLen
            maxLen = j-i;
            result = temp;
        end
    end
end
toc;
end

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
11楼2012-02-22 00:11:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 微尘、梦想 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见