您的位置:首页 > 编程语言 > C语言/C++

c语言--简单素数筛法

2016-08-09 10:00 190 查看
输入包括一行,仅一个数字N。

输出在(1, N]区间内的所有的素数。

提示:想像将(1, N]的数字看成沙子和小石头,视非素数为沙子,视素数为小石头。将沙子筛走,剩下的就是小石头了。考虑到N最大也就是10000,你可以开一个长度为10000的数组,让数组元素的值作为筛去与否的标志,比如筛去以后让元素值为1,然后依次输出就可以了。当然,如果你有更好的办法,也可以试试哦!

#include <stdio.h>
int n;
int a, b, c=1;
int main(){
scanf("%d",&n);
for(a = 1; a<n+1; a++){
c = 1;
for(b = 2; b<a; b++){
if(a % b == 0)
c = 0;
}
if((c == 1)&&(a!=1)){
printf("%d\n",a);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: