标题:素数求法求注释。
只看楼主
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
得分:0 
求关注……
求解惑……
2012-12-30 16:53
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
得分:0 
崩溃啦 。 继续顶起求大神
2012-12-30 18:35
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
楼主的结果确实是对的。但不赞同这种做法。

它的统计确实是从5开始的(昨天手机上看的时候注意力都集中在2上了),而2和3是从后面的范围外补上的,事实上它是多统计了10亿之后的两个素数,所以从总数上来说是一致的。

我也写了一个一次筛的算法对比测试了一下,速度并不比它慢,事实上在我的电脑上还要快近500毫秒,而内存消耗比它更少。

呵呵,我个人是不喜欢这种充满大量冗余逻辑的代码的,华而不实。

各位有兴趣的可以在自己的电脑上测试对比一下两段代码。
程序代码:
#include<stdio.h>
#define RANGE    1000000000
char P[RANGE / 16 + 1];
int main()
{
    int i, j, t, c = 1;
    for(i = 3; i <= RANGE; i += 2)
        if(!(P[i >> 4] & (1 << (i >> 1 & 7))))
            for(c++, t = i + i, j = t + i; j > 0 && j <= RANGE; j += t)
                P[j >> 4] |= 1 << (j >> 1 & 7);
    printf("%d\n", c);
    return 0;
}

重剑无锋,大巧不工
2012-12-30 20:31
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
得分:0 
回复 23楼 beyondyf
杨大哥你终于来了……
2012-12-30 20:33
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
得分:0 
有时间么杨大哥
在我那代码旁边弄点注释……
虽然方法没你的好
可是我看了好久没弄懂
不甘心啊………………
2012-12-30 20:35
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:0 
回复 25楼 hit小龙
我很纠结小龙。如果我在那段代码上加注释恐怕也就是把昨天发的那段解释分别加在三组循环上。估计这不会让你满意的。

平时我只在函数头上加注释说明一下函数的用途,算法里没法加注释的。我是这么觉得的。呵呵,见谅!

倒不如具体说说你哪里看不懂的好。

重剑无锋,大巧不工
2012-12-30 20:54
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
得分:0 


那我自己再琢磨琢磨

谢谢杨大哥了
2012-12-30 21:03
hit小龙
Rank: 6Rank: 6
等 级:侠之大者
帖 子:173
专家分:462
注 册:2012-12-6
得分:0 
回复 26楼 beyondyf
#define BITMAPSIZE 8
unsigned char map[SIZE / 2 / BITMAPSIZE + 1];
unsigned char bsm[10000];/* 这是一个估算值 */
int bn[10000];

能说下这4个定义代表什么么,  忙的话就不打扰了。。  我都不好意思了。。。

我比较水,还望见谅

还是就是去算法那边这个帖子留个言吧 我结贴
2012-12-30 21:33
古丁高手
Rank: 1
来 自:地狱
等 级:新手上路
帖 子:56
专家分:8
注 册:2012-8-8
得分:0 
以下是引用聊斋唐少在2012-12-29 23:13:16的发言:

有点晕,好像求素数没那么夸张啊!!以前写的感觉很简单啊!
真正的高手是将简单问题复杂化!

不要管我是谁,我也不管你是谁!
just kiss myass!
2013-01-02 03:27
XQwindow
Rank: 2
等 级:论坛游民
帖 子:121
专家分:64
注 册:2013-1-1
得分:0 
如果求单个是否是素数应该不难,这个我看不懂。。

我不知道我能否当程序员,但我依然热爱编程!
2013-01-02 09:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-394440-1-1.html




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

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