#include<stdio.h>
#include<string.h>
/*************************
//方法一
int main(){
int a[1000];
memset(a,1,sizeof(a));//标记为全部为素数
int i,t=2;
a[0]=0;
a[1]=0;
while(t<=1000){
for( i=2;i<=1000;i++){
if(i*t>=1000)break;
a[i*t]=0;
}
t++;
while(t<=1000&&a[t]==0){
t++;
}
//printf("%d\n",t);
}
for(int j=0;j<1000;j++){
if(a[j]>0){
printf("%d\n",j);
}
}
return 0;
} **************************************/
//方法二
int main(){
int a[1000];
int i,j;
for(i=2;i<1000;++i){//全部 变为素数 1是素数 0非素数
a[i]==1;
}
for(i=2;i*i<1000;++i){
if(a[i]>0){
for(j=i*i;j<1000;j+=i){
a[j]=0;
}
}
}
for(int j=2;j<1000;j++){
if(a[j]>0){
printf("%d\n",j);
}
}
return 0;
}
不知道为什么 if(a[i]==1)运行不会出来结果