您的位置:首页 > 其它

【程序12】 题目:判断2-200之间有多少个素数,并输出所有素数

2013-08-22 18:53 330 查看
方法一:

使用平方优化版本。

#include <stdio.h>
#include <math.h>

int main(){

int i,j;

for(i=2;i<=200;++i){

for(j=(int)sqrt(i);j>=2;--j)
if(i%j == 0)break;

if(j<2)printf("%d\n",i);
}

return 0;
}


方法二:

对6取余方法:

#include <stdio.h>
#include <math.h>

int judge(int x){

int j = (int)sqrt(x);

for(j;j>=2;--j)
if(x%j == 0)return 0;

return 1;
}

int main(){

int i,j,flag;

for(i=3;i<=200;++i){

switch(i%6){

case 0:flag = 0;break;
case 1:flag = judge(i);break;
case 2:flag = 0;break;
case 3:flag = 0;break;
case 4:flag = 0;break;
case 5:flag = judge(i);break;
}

if(flag)printf("%d\n",i);
}

return 0;
}


方法三:

使用素数筛:

#include <stdio.h>

int map[201]={1,1};

int main(){

int i,j;

for(i=2;i<=200;++i)
for(j=i+i;j<=200;map[j]++,j+=i);

for(i=2;i<=200;++i)
if(!map[i])
printf("%d\n",i);

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐