填空题 函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。
请在程序的下划线处填人正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
#indude<stdio.h>
int fun(int n)
(int i, j, count==0;
printf("nThe prime number between 3 to %d/n", n);
for(i=3; i<=n; i++){
/**********found**********/
for 1; j<i; j++)
/**********found**********/
if( 2%j==0)
break;
/**********found**********/
if( 3>=i)
{count++;
printf(count%15?"%5d":"/n%5d", i);}
}
return count
}
main()
(int n=20, r;
r=fun(n);
printf("/nThe number of prime is:%d/n", r);
}
【正确答案】
【答案解析】(1)j=2 (2)i (3)j [解析] 填空1:j的初始化要从2开始,因为要判断一个数是否为素数即将其除以从2开始的数字,看有没有被整除的。
填空2:如果碰到有个数字j可以被i整除,那么表示这个数不是素数,要用break直接结束循环,这个时候的j肯定小于i。
填空3:j>=i,表示在上面if(i%j==0)没有成功,所以会循环执行for(j=2; j<i; j++),以致最后j>=i,这样可以知道该数字i就是素数。