情報:IT
高校生
解決済み

例えば外部からの入力が7の場合、2から7まで1ずつ増やしたら(4)で7%7 == 1になりませんか?
どうして答えが④と③なのですか?

外部から入力された正の整数について、 素数かどうかを判定する次のプログラム の空欄に入れるのに最も適当なものを、後の解答群のうちから一つずつ選べ。 (2) wareta 0 (1) seisuu = 【外部からの入力】 (3) i ケ 1 ずつ増やしながら繰り返す : (4)| もし seisuu : i == 0 ならば : (5)LL wareta = 1 ならば: 表示する (" 素数です") (6) もしwareta (7) (8) そうでなければ: (9) 表示する("素数ではありません") Note 素数とは,1と自 分自身でしか割り 切ることのできな い数。 変数 wareta は 最初に 代入 されており、ある 条件が成立したと きに1になる。 ケ コ の解答群 ⑩ 1から seisuu まで ① 2から seisuu まで 1から seisuu -1 まで 0 seisuu ⑤ 1 ⑧ seisuu/i 2から seisuu 2 ⑨ seisuu ÷ 1 まで 解答 ケ コ
練習 3 解答 ケ: ③コ:4 開始 割り切れる数が (1) 見つかったかどうかを 表す変数 wareta に 0 を代入しておく。 外 部入力された数を2 から順に自然数で繰り 返し割っていき, 割り 切れたら変数 wareta に1を代入する。 (2) ループ (3) No (4) Yes (5) ループ No (8) 度も割り切れなかった 場合, wareta は 0 の ままなので、 素数と判 (6) Yes (7) (9) I 1 断する。 この変数 終了 wareta のように, 0か1かで状況の変化を表す変 数をフラグと呼ぶことがある。 Python での記述例 (1) seisuu int (input('整数を入力) (2) wareta = 0 (3) for i in range (2, seisuu, 1): if seisuu % i == 0: 1 (4) 1 (5) wareta =1 (6) if wareta == 0: (7) print('素数です i (8) else: (9) print('素数ではありません

回答

✨ ベストアンサー ✨

まず、%は割り算の余りを計算する演算子なので7%7は0です。そしてwaretaは余りが0のとき(割り切れたとき)に1になる変数です。

外部入力が7のとき、7で割ってしまうと7%7が0となりwareta=1となってしまって素数ではないと判定されてしまうので、iは2からseisuu-1までになります。よってケの答えは③になります。

素数は2からseisuu-1で割り切れなかったもの、つまりwaretaが0のままのものなので、コの答えは④になります。

分からないところがあれば聞いてください!

この回答にコメントする
疑問は解決しましたか?

この質問を見ている人は
こちらの質問も見ています😉