| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1820 人关注过本帖
标题:请教大家一个求素数的问题
只看楼主 加入收藏
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1029
专家分:177
注 册:2007-5-10
收藏
得分:0 
终极筛数模板,要得拿去
程序代码:
const int UPBOUND = 100000;
int a[UPBOUND];
int p[UPBOUND],pn;

//号称线性的筛素数算法,实际性能确实不错 
//p[]={2,3,5,7,...},pn为小于UPBOUND的素数个数 
//若i是合数a[i]为i的最小因子,若i是素数a[i]=0 
void primefilter(){
    int i, j;
    for(i = 2; i < UPBOUND; ++i){
        if(!(a[i])) p[pn++] = i;
        for(j = 0; (j<pn && i*p[j]<UPBOUND && (p[j]<=a[i]||a[i]==0)); ++j) {
            a[i*p[j]] = p[j];
        }
    }
}
2008-10-26 15:33
快速回复:请教大家一个求素数的问题
数据加载中...
 
   



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

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