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 编辑 ]