HOME»基本情報技術者試験掲示板»大滝本:自然数nまでの素数を求める
投稿する
大滝本:自然数nまでの素数を求める [6155]
kalkanさん(No.1)
おなじみ(旧)大滝本の問題ですが、良問なので現在の大滝本にも掲載されてる前提で
質問します。
iの値 for文の中の処理 while文の繰り返し回数←で
「2」「3」~の場合を計算で出してますが、この計算の意味が分からないのです。
「2」で言うと「(24-4)÷2+1」で11回と出てますが、ここの解説をお願いしたいのです。
特に最後の+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かと思いますが。
kalkan質問の大滝本ページ数教えて下さい。
kalkan質問の「+1」はwhile分をループするための+1かと思いますが。
2025.11.23 07:18
kalkanさん(No.3)
返信ありがとうございます。
しかし、大滝本は2024年3月初版のバージョンなので
現在のと違うと思いますが、
あえて書くとP114 4.2 自然数nまでの素数を求める
です。
現在未掲載の可能性もあります。
しかし、大滝本は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をたしているだけなんです。
ぼくもこの問題を解きました。たしかにちょっとわかりにくい問題、解説でした。よく観察して考察すると、こういうことなんじゃないかというのがぼくの研究ですね😎ほかの方はもっとわかりやすく解説してくれるでしょう。待ちましょう!
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
もう公式のようなものです。
*****
なるほど!!!
返信ありがとうございます。
6割ぐらい分かった感じです。
それよりも本題と違いますが、下記文章が私には目から鱗でした。
もやもやしていたものが、一つ晴れたような気がします。
一生覚えておきます。
ありがとうございました。
*****
謎の値のヒントになりうるものですが、質問者さんは、3から5に整数がいくつあると思いますか?
3 4 5
と数えて当然3個ですよね?2つではありません。
5−3+1
です。不思議ですね。ですが、考えてみれば当然で、数えなくてはいけない3もひいてるからなんですね。
数を数えるときは
最大値−最小値+1
もう公式のようなものです。
*****
なるほど!!!
2025.11.24 07:13
