C语言数组。筛选法求素数,运行结果都正确,但就是过不了学校的评测系统,谁能帮我看看从哪里了?谢谢!
问题描述:
#include <stdio.h>
#include <math.h>
int main(){
int n,i,j;
int a[100001]={0};
for(i=2;i<100001;i++){
a[i]=i;
}
scanf("%d",&n);
if(n==2){
printf("%d ",n);
}
for (i=2;i<sqrt(n);i++){
for (j=i+1;j<n;j++){//j=i+1
if(a[j]!=0&&a[i]!=0){//这里一定要记住是两个都不为零 我找了半天的错误
if (a[j]%a[i]==0){
a[j]=0;
}
}
}
}
for (i=0;i<n;i++){
if(a[i]!=0){
printf("%d ",i);
}
}
return 0;
}
答
说有一个结果错误 估计是少了啥条件 但是我查了好几遍了