填空题

用筛选法可得到2 ~ n(n<10000)之间的所有素数,方法是:首先从素数2开始,将所有是2的倍数的 数从数表中删去(把数表中相应位置的值置成0);接着从数表中找下一个非0数,并从数表中删去该数的所 有倍数;依此类推,直到所找的下一个数等于n为止。这样会得到一个序列:

2,  3, 5, 7, 11, 13,  17, 19,  23,    

函数fun用筛选法找出所有小于等于n的素数,并统计素数的个数作为函数值返回。

请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!

  • 1、
【正确答案】 1、

(1)a[i]

(2)a[i]

(3)0 

    
【答案解析】

填空1:因为本题的方法是首先从素数2开始,将所有2的倍数的数从中删去(把数表中相应位置置0),可知本空应填a[i]。

填空2: while循环表示接着从数表中找下一个非零数,并从表中删去该数的所有倍数,故填a[i]。

填空3:因为要统计表中素数个数,因而只需把置0的数排除,因而此空填写0。