24小时热门版块排行榜    

查看: 1867  |  回复: 6
本帖产生 3 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

holmescn

金虫 (正式写手)

[交流] Euler 工程 第十题:计算小于2百万的所有质数的和 已有3人参与

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

小于10的所有质数的和为:2+3+5+7 = 17

那么小于2百万的所有质数的和是多少?


PS:最近的关于质数的问题还真是多啊,哈哈。
PS2:到第10题了,这个题的解出率已经是第一题的一半还不到了。
回复此楼

» 猜你喜欢

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

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

匿名

用户注销 (小有名气)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励参与交流! 2011-05-24 12:38:22
本帖仅楼主可见
7楼2011-05-24 09:58:17
已阅   回复此楼   编辑   查看我的主页
查看全部 7 个回答

huycwork

金虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+1): 谢谢参与讨论! 2011-05-15 19:21:06
只是这些质数问题,侧重点各有不同,第三题要求找出最大质数,第七题要求解出第10001个质数,而这一题根本不要求测试出所有质数,只是求和而已,解法应该也有特殊之处。
漩涡的中心有一块空地,空空的。
2楼2011-05-15 08:44:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3): 谢谢参与交流! 2011-05-15 19:21:33
还是老规矩,先来个偷懒的解法
CODE:
function result = euler10()
tic;
result = sum(primes(2000000));
toc;
end

结果+运行时间
CODE:
% Elapsed time is 0.087248 seconds.
% ans =
%               142913828922

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2011-05-15 14:56:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 谢谢参与交流! 2011-05-15 19:21:47
我先前说的素数算法的实现,偶数部分没有优化,效率看起来还算不错~第七题都没人管了,就发这吧:
CODE:
#include
#include

using namespace std;

enum {
        BUFSZ = 10000,//这个限制产生性能瓶颈,设置越大,性能就越好
        NPRI = 10001    //这个数据就需要估计了,不想估计,就直接vector吧:)
};

bool buf[BUFSZ];
size_t primer[NPRI];

size_t eular7(size_t nprimer = 10001){
        size_t offset = 0, *prip, *cprip;
        int top;//记录素数数
        int falc;//排除的数
        bool *bufp;
        primer[0] = 2;//负责偶数部分
        primer[1] = 3;
        primer[2] = 5;
        top = 3;
        //如果从1开始会把所有的数都false了,offset必须比1要大
        offset += 5;
        while(1){
                for(size_t i = 0; i < BUFSZ; ++i)
                        buf[i] = true;
                falc = 0;
                prip = primer;
                cprip = primer + top;
                bufp = buf;
NEWPRI:   //每当有新的素数就跳回来
                //检查每个已知的素数,这部分可能有bug,测试的时候感觉有点问题
                while(prip - primer < top){
                        size_t mod = offset%(*prip);
                        if(mod == 0){
                                buf[0] = false;
                                ++falc;
                        }
                        for(size_t i = *prip - mod; i < BUFSZ; i+=*prip){
                                if(buf[i])
                                        ++falc;
                                buf[i] = false;
                        }
                        ++prip;//这个指针保证,不会重复遍历素数表
                }
                //添加未知的素数,每次只添加一个
                for(int i = bufp - buf; i < BUFSZ; ++i){
                        if(buf[i]){
                                primer[top++] = offset + i;
                                if(top == nprimer)
                                        goto DONE;
                                bufp = buf+i;//这个指针保证,不会重复检查缓冲数表
                                if(falc + prip - cprip < BUFSZ)
                                        goto NEWPRI;
                        }
                }
                offset += BUFSZ;
        }
DONE:
        return primer[nprimer-1];
}

int main(){
        time_t t1, t2;
        t1 = time(0);
        size_t res = eular7();
        t2 = time(0);
        cout<<"result:"<         cout<<"cost:"<         return 0;
}

如果要适应这题,修改终止条件即可。
漩涡的中心有一块空地,空空的。
4楼2011-05-15 15:45:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 时间戳变了,能看出什么问题? +8 基诺咪客 2026-08-17 11/550 2026-08-18 17:13 by 悠然熊猫
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +50 医学老男孩 2026-08-13 109/5450 2026-08-18 16:56 by 医学老男孩
[教师之家] 两姐妹,一个辛辛苦苦30岁工作当大学教师,另一个23岁就工作当开车教练 +3 瞬息宇宙 2026-08-11 7/350 2026-08-18 16:42 by LNP@mRNA
[论文投稿] 投稿咨询 +4 wwm09 2026-08-17 6/300 2026-08-18 15:36 by wwm09
[基金申请] 时间戳又变了8-15 +14 archvillain 2026-08-15 26/1300 2026-08-18 13:37 by phantomgost
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +13 Ldrop2023 2026-08-13 16/800 2026-08-18 12:25 by 淀粉搬运工
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 8/400 2026-08-18 11:47 by gltch
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +4 Tide man 2026-08-14 5/250 2026-08-18 11:35 by Tide man
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
信息提示
请填处理意见