基本情報アルゴリズムについて質問です。R6過去問 問2なぜ、エが正解ですか?

1件の回答

回答を書く

1074411

2026-01-08 17:55

+ フォロー

このプログラムは,私も昔作ったことがある。

d=3以上は,d←d+2 で奇数にしたほうが速く回る。プログラムは長くなりますが,回る回数が半分になる。



割り切れる数を見つけた(n mod d =0)ら,

その数を書いて,\u0026quot;×\u0026quot; を付ける。



これを繰り返すと,nが素数になったときに,while から飛び出すので,

残っている素数nを最後に書く。





1回目にwhile を通ると,

d=2,n=84→42,結果 \u0026quot;2×\u0026quot;



2回目にwhile を通ると,

d=2,n=42→21,結果 \u0026quot;2×2×\u0026quot;



3回目にwhile を通ると,(else の方を回る)

d=2→3,n=21,結果 \u0026quot;2×2×\u0026quot;



4回目にwhile を通ると,

d=3,n=21→7,結果 \u0026quot;2×2×3×\u0026quot;



5回目にwhle に入ると,n=7,d=3 で,nがd²より小さいので,while から飛び出す。



最後に,残っている素数\u0026quot;7\u0026quot; を付けて,結果は,\u0026quot;2×2×3×7\u0026quot; となる。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有