B071

01-程序填空题 田少松, 软件154 957浏览

所属年份:2011.3;

函数fun的功能是:统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!

#include    <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,这样可以知道该数字i就是素数。