0から100までの素数を表示して、昇順に並び替えるプログラムを作成したのですが、なぜか0が出力されてしまいます。なぜ0が出力されてしまうのかの原因が知りたいです。どなたか助けてください。
public class chart3
{
final static int MAX = 100;
public static int i = 0;
public static int j = 0;
public static int box = 0;
public static int sosuMax = 0;
public static int[] array = new int[100];
public static void main( String[] args ) { for(i = 0; i <= MAX; i++) { if(SosuCheck(i)) { array[j] = i; j = j + 1; } } sosuMax = j; //昇順 while(j > 0) { for(i = 0; i < j; i++) { if(array[i + 1] < array[i]) { box = array[i + 1]; array[i + 1] = array[i]; array[i] = box; } } j = j - 1; } //出力 for(i = 0; i <= sosuMax; i++) { System.out.print(array[i] + " "); } } public static boolean SosuCheck(int i) { if(i == 2) { return true; } //判定数値を偶数で割れた場合は奇数ではない if(i % 2 == 0 || i < 2) { return false; } for(int kisuu = 3; kisuu < Math.sqrt(i); kisuu += 2 ) { if(i % kisuu == 0 ) { return false; } } return true; }
}
回答5件
あなたの回答
tips
プレビュー