| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1516 人关注过本帖, 1 人收藏
标题:尝试列出 2,000,000以下的所有素数
取消只看楼主 加入收藏
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
结帖率:77.78%
收藏(1)
已结贴  问题点数:20 回复次数:7 
尝试列出 2,000,000以下的所有素数
如题,请大家尝试一下,然后把自己的算法和程序运行时间贴出来
搜索更多相关主题的帖子: 时间 
2011-04-10 18:43
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
请贴出你的程序运行时间
2011-04-10 20:58
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 6楼 水晰
你试试看2,000,000你的算法会让你等到失去耐性。
我可以告诉你算法设计够好的话可以在 2 秒内得到结果(不算printf()的时间)
2011-04-10 21:10
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
其实用 sieve 完全可以的。如果注释掉 printf(), msys 测得时间也只有 100ms 左右

程序代码:
#include <stdio.h>

#define LMT 2000000

int main() {
    char m[LMT] = {0};
    int i, j;
    printf ("2\t");
    for (i = 3; i < LMT; i+= 2) {
        if (!m[i]) {
            printf("%d\t", i);
            for (j = i * 3; j < LMT; j += i * 2) {
                m[j] = 1;
            }
        }
    }
    return 0;
}


[ 本帖最后由 voidx 于 2011-4-10 23:27 编辑 ]
2011-04-10 23:18
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 12楼 张敏樱木花道
难道是我和孔明的 Sieve ? 绝对滴不可能
2011-04-11 00:08
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
孔明,我有个问题,把数组定义为全局最大长度可以多大? 定义为一个函数的本地变量最大长度可以多大?

[ 本帖最后由 voidx 于 2011-4-11 12:43 编辑 ]
2011-04-11 12:22
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
我并不质疑孔明的算法,不过他的算法还可以进行优化也是事实。

我想知道的就只是这个问题:把数组定义为全局最大长度可以多大? 定义为一个函数的本地变量最大长度可以多大?

这真的只是个问题,我想知道答案,因为我在测试的时候发现把孔明的 M 改成 3,000,000可以运行,但是我的 LMT 改成 3,000,000 在分配空间的时候会出错。比较代码之后我发现我的代码是把数组 m 定义为 main 函数的成员变量,而孔明的代码是把数组 v 定义为一个全局变量。
2011-04-11 14:19
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 23楼 njkido
哦~~~
表示感谢~~
2011-04-11 14:33
快速回复:尝试列出 2,000,000以下的所有素数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043826 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved