阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】 程序功能是求1到100之间的所有素数。 【程序】 SET TALK OFF CLEAR J=2 DO WHILE J<=100 I=2 DO WHILE (5) IF MOD(J,I)=0 (6) ENDIF I=I+1 ENDDO IF (7) J ENDIF J=J+1 (8) SET TALK ON RETURN |
A.I<INT(J/2)
B.I>INT(J/2)
C.I=INT(J/2)
D.I<J/2
参考答案:B
解析: 素数是只能被自己和1整除的数。该程序的指导思想是:变量J从2增加到100(1既不是素数也不是合数,所以直接从2开始),是外层循环所做的工作,变量J每增加1,在循环体中判断本次循环的J是否是素数,然后加1。如何去判断1是否是素数如果J最先遇到的能整除的数(除了 1以外)比J的一半还大,这个能整除的数肯定是J自己,那么此时的J是素数。在内循环,被除数I,最大也不能超过J,所以第(5)空是I<=J。在循环体内,如果找到第一个能够整除J的I,此时要退出内循环,其余的I不用再参与循环了。剩下的工作就只需要判断I是比J的一半大,还是比J的一半小。如果大,则J是素数,如果小,则J不是素数。综上分析,第(6)个空和第(7)个空分别填EXIT和I>INT(J/2)。