n=2,第一个条件就不满足吧,div*div=4<=2?,还能执行到return语句吗?我这边运行结果,对于4之前的返回奇怪的结果。
#include <stdio.h>
int isprime(int n) //如果n是素数 返回1,反之 返回0
{
int div,tmp;
for(div = 2; div * div <= n; div++)
{
if (n % div == 0)return 0;
else return 1;
}
}
int main(void)
{
int flag=0,i;
for(i=2;i<20;i++)
{
flag=isprime(i);
printf("%d",i);
printf(" %d",flag);
printf("\n",i);
}
return 0;
}
结果
i flag
2 4
3 4
4 0
5 1
6 0
7 1
8 0
9 1
10 0
11 1
12 0
13 1
14 0
15 1
16 0
17 1
18 0
19 1
[
本帖最后由 pauljames 于 2011-8-30 21:31 编辑 ]