質問: 1; i < max; i++) { if(a[i]) system.out.print((i + 1) + " "); } system.out.println(); } } このプログラム
回答: アルゴニズムが分かっているかですかね・・・ 素数かどうかを判定するのはmaxまでの数から1を除いた(max-1)個の数なので iが素数かどうかの判定結果をa[i-1]に入れてあります 1 配列の初期化ですべてが素数と仮定 2 if(a[i-1])でiが素数かどうかを判定 2.1 素数だった場合maxまでのiの倍数の数の判定結果をfalseに設定する 2.2 素数じゃなかったら次の数 [補足]iが素数でなかった場合i-1までに判定がfalseに設定されているはずである 3 結果表示 a[i]がtrueならi+1は素数である!