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回ぐらい「空振り」することになりますね。