C语言数组。筛选法求素数,运行结果都正确,但就是过不了学校的评测系统,谁能帮我看看从哪里了?谢谢!

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;
}

说有一个结果错误 估计是少了啥条件 但是我查了好几遍了