加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

c语言中用筛选法求素数

(2008-08-20 09:26:03)
标签:

杂谈

分类: 学习天地

分析:由希腊著名数学家埃拉托色尼提出的所谓“筛法”,步骤如下:
①将所有候选数放入筛中;
②找筛中最小数(必为素数)next,放入集合primes中;
③将next的所有倍数从筛中筛去;
④重复②~④直到筛空。
编程时,用集合变量sieve表示筛子,用集合primes存放所有素数。
源程序如下:

#include<stdio.h>
int main()
{
   int i,h,k=0,p[100]={0},a[200]={0};
   for(i=1;i<200;i++)
     a[i]=i+1;
   for(i=0;i<200;i++)
     if(a[i]!=0)
       {
         p[k]=a[i];
         for(h=i;h<200;h++)
           if(a[h]%p[k]==0)
            a[h]=0;
         k++;
       }
   i=0;
   printf("primes:");
   while(p[i]!=0)
   {
    printf("%5d",p[i]);
    i++;
   }
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有