题目描述
用筛法求之N内的素数。
输入
N
输出
0~N的素数
样例输入
100
样例输出
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
第一步:确认筛选范围
int n;
cin >>n;
第二步:明确怎么去判断一个数它是否为素数
素数是只能被1和自己整除的数
如何判断?
如果数字为n
我们可以通过穷举的方式,将2到n-1之间的数都拿出来整除n,如果有能整除n的数,说明n不是一个素数
代码如下(示例):
//
// main.cpp
// 用筛法求之N内的素数
//
#include
using namespace std;
int main(){
int n;
bool flga =true;
cin >>n;
//因为1不是素数,我们遍历2到n之间所有的数
for(int i=2;i<=n;i++){
// 每次将遍历到的数 进入内层循环 判断是否为素数
for(int j=2;j<i;j++){
//如果成立 说明当前这个i不是素数 通过flag这个变量去标记当前这个数是否为素数
if(i%j==0){
flga = false;
break;
}
}
//如果还是ture说明 没有发现变化 则是素数
if(flga){
cout << i <<endl;
}else{
flga = true;
}
}
return 0;
}
留下你的赞和收藏吧