【程序说明】 程序功能是求1到100之间的所有素数。 【程序】 SET TALK OFF CLEAR J=2 DO WHILE J<=100 I=2 DO WHILE (5) IF MOD(J,I)=0 (6

admin2010-06-18  19

问题 【程序说明】 程序功能是求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)。
转载请注明原文地址:https://kaotiyun.com/show/zjhZ777K
0

最新回复(0)