高校の情報の問題です。このプログラミングでjが出てくるのですが、どこを表しているjなのでしょうか。(どの操作に連動?しているのでしょうか。)特に断りはありませんでした。

1件の回答

回答を書く

1034796

2026-03-11 20:05

+ フォロー

06行~17行までのループの中では、

素数が見付かったら、14行目で判定して

j番目に見付かったその素数を15行目で配列のj番目に入れて、

見付かった個数jを16行目で1増加します。



ということで、素数が見付かる度にjは1ずつ増える...つまり、それまでに見付かった素数の個数を保持していることになります。





そのループを抜けたら、その時点でのjはnまでの間に見つけた素数の個数を持っていることになりますから、

j個分の配列の要素つまり素数を20行目からのループで表示します。



---

余談になりますが、numが素数か調べるときにその問題では

iを2~num-1まで変えながら、numをiで割ったときの余りが0かどうか

で調べていますが、これは実はnumが素数だったときにムダが多いです。



numが素数でないとしたら、約数の有りうる最大値はi*i\u0026lt;numとなるiだ、というのはわかりますか?そうなるiはnumに比べて随分と小さい値のはず。その値からnum-1まで調べる行為は、その間には約数は絶対にないのに一所懸命探していることになります。

1000付近の数について調べるので有れば、およそ700回ぐらい「空振り」することになりますね。

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

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有