几个问题
你输出的时候
上面已经做过a[j++]=i;了 这里j已经自加了
那么就不能直接输出a[j] 而应该输出a[j-1]
输出不能每次循环都输出 必须要在判断里面
判断换行不能用i判断 而应该用j判断
所以这部分应该是
for(i = 2; i < 201; i ++)
{
if(pp(i))
{
a[j++]=i;
printf("%d ", i);
if(j%5==0)printf("\n");
}
}
从这个代码上看 a并没有起到什么作用 所以其实可以把a去掉 只做j++就可以了
另外 判断素数的时候
应该是
for(i = 2; i <= x/2; i ++)
最后返回的时候其实不需要判断
直接return 1;就可以 因为不符合的之前已经返回了