Webで学ぶセンター試験数学−BASICプログラミング素数 > 410 問題 プログラム2 解答

410 問題 プログラム2 解答

【問題】Nが素数 (prime) であるか判定するプログラム

 設問1で確認したように、プログラム1はNが素数であるか正しく判定することができます。しかし、プログラム1にはいくらか無駄があります。

 その1つとして、実際には2〜N-1の自然数で割り切れるかどうか確かめなくてもNが素数であるか判定できることがあげられます。素数の性質1から、2〜Square Root Nの自然数で割りきれるかどうか確かめるだけでよいのです。

 そこで、プログラム1を書き換え、プログラム2としました。

[プログラム2]

  10  INPUT PROMPT "n=":N
  20  FOR I=2 TO ______
  30      IF ________________ THEN
  40          PRINT N;"is not a prime."
  50          GOTO 90
  60      END IF
  70  NEXT I
  80  PRINT N;"is a prime."
  90  END

[設問2]

 空欄を埋めてプログラム2を完成させなさい。その後、実行してプログラム1と同様に正しく動作することを確認しなさい。ただし、30行目にはプログラム1と同じ条件文が入ります。

[解答]

    10  INPUT PROMPT "n=":N
    20  FOR I=2 TO SQR(N)
    30      IF N-I*INT(N/I)=0 THEN
    40          PRINT N;"is not a prime."
    50          GOTO 90
    60      END IF
    70  NEXT I
    80  PRINT N;"is a prime."
    90  END

<< 前のページ|トップページ|次のページ >>
inserted by FC2 system