题解 | #筛选法求素数#
https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a
int arr[100]={0};
int n;
while(~scanf("%d",&n)){
int i=0;
for(i=0;i<n-1;i++){ //数组中存储了n-1个元素
arr[i]=2+i; //给数组arr中的元素赋初值2~n
}
int x=0; //表示当前的除数的下标
for(x=0;x<n-1;x++){
for(i=x+1;i<n-1;i++){
if(arr[i]==0||arr[x]==0) //由于除数不能为0,故跳过
continue;
if(arr[i]%arr[x]==0) //arr[i]能被arr[x]整除
arr[i]=0;
}
}
int count=0;
for(i=0;i<n-1;i++){
if(arr[i]!=0)
printf("%d ",arr[i]);
else
count++;
}
printf("\n%d\n",count);
}
return 0;
}