我们先看代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
bool a[1005];
memset(a,0,sizeof(a));
scanf("%d",&n);
for(int i=2; i<=n; i++) {
for(int j=i+i; j<=n; j+=i) {
a[j]=1;
}
}
for(int o=2; o<=n; o++) {
if(!a[o]) {
printf("%d\n",o);
}
}
}
这一段是清空数组,方便我们之后的代码(详情可以看这里)。
memset(a,0,sizeof(a));
这一段 我们可以排除非质数,设置为“1”
for(int i=2; i<=n; i++) {
for(int j=i+i; j<=n; j+=i) {
a[j]=1;
}
}
最后一段就是判断并输出:
for(int o=2; o<=n; o++) {
if(!a[o]) {
printf("%d\n",o);
}
}
最后可以加个return 0;