大滝本:自然数nまでの素数を求める

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
kalkanさん  
(No.1)
おなじみ(旧)大滝本の問題ですが、良問なので現在の大滝本にも掲載されてる前提で
質問します。

iの値 for文の中の処理 while文の繰り返し回数←で

「2」「3」~の場合を計算で出してますが、この計算の意味が分からないのです。
「2」で言うと「(24-4)÷2+1」で11回と出てますが、ここの解説をお願いしたいのです。
特に最後の+1ってなんやねん!って感じです。
では、お願いいたします。
2025.11.23 03:24
ぼうけんじゃさん 
(No.2)
私も大滝本で勉強中です。

kalkan質問の大滝本ページ数教えて下さい。

kalkan質問の「+1」はwhile分をループするための+1かと思いますが。
2025.11.23 07:18
kalkanさん  
(No.3)
返信ありがとうございます。
しかし、大滝本は2024年3月初版のバージョンなので
現在のと違うと思いますが、
あえて書くとP114 4.2 自然数nまでの素数を求める
です。
現在未掲載の可能性もあります。
2025.11.23 08:20
おにじさんさん 
(No.4)
この投稿は投稿者により削除されました。(2025.11.23 14:39)
2025.11.23 14:39
おにじさんさん 
(No.5)
(24-4)÷2+1についてです。

4 6 8 10 12 14 16 18 20 22 24 (11個)

プログラムを見ると、はじめの4を数えるときにすでに1回目になっていますね。(while文1回目で、4が素数じゃありませんという意味でprime[4]←1します)

つまり、4を1個目として数えるわけですから、24まで増分飛びしながら数えると11個となります。26になったときwhile条件によりとまりますが、数えるのはαなので、これを12回目には数えていないようです(表では11回となっているので)。これを算出するにあたり、冒頭の式で計算してるわけですが、
(最大値−最小値)÷増分+謎の値
となっています。

謎の値のヒントになりうるものですが、質問者さんは、3から5に整数がいくつあると思いますか?
3 4 5
と数えて当然3個ですよね?2つではありません。
5−3+1
です。不思議ですね。ですが、考えてみれば当然で、数えなくてはいけない3もひいてるからなんですね。
数を数えるときは
最大値−最小値+1
もう公式のようなものです。

再掲
4 6 8 10 12 14 16 18 20 22 24 (11個)
(24-4)÷2+1
=(12−2)+1
これは2〜12を数えるのと同じことなんです。

質問者さんが疑問に思ったのは、きっと2で割っているからむずかしく考えてしまっているんですね。数えなくてはいけない4をひいてしまっているので、つじつま合わせで1をたしているだけなんです。


ぼくもこの問題を解きました。たしかにちょっとわかりにくい問題、解説でした。よく観察して考察すると、こういうことなんじゃないかというのがぼくの研究ですね😎ほかの方はもっとわかりやすく解説してくれるでしょう。待ちましょう!
2025.11.23 14:40
kalkanさん  
(No.6)
おにじさんさん
返信ありがとうございます。
6割ぐらい分かった感じです。
それよりも本題と違いますが、下記文章が私には目から鱗でした。
もやもやしていたものが、一つ晴れたような気がします。
一生覚えておきます。
ありがとうございました。

*****
謎の値のヒントになりうるものですが、質問者さんは、3から5に整数がいくつあると思いますか?
3 4 5
と数えて当然3個ですよね?2つではありません。
5−3+1
です。不思議ですね。ですが、考えてみれば当然で、数えなくてはいけない3もひいてるからなんですね。
数を数えるときは
最大値−最小値+1
もう公式のようなものです。
*****

なるほど!!!
2025.11.24 07:13

返信投稿用フォーム

※CBT試験では出題内容の公開が禁止されているため、直接的・間接的を問わず、出題内容や難易度を尋ねる質問は厳禁です。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む記事の投稿はできません。

投稿記事削除用フォーム

投稿番号:
パスワード:

その他のスレッド


Pagetop