N 個 (N は引数) の素数 (1 行に 1 つの数値) を出力するプログラムを作成しようとしています。コードは機能していましたが、それは N 個の素数を与えているのではなく、N 内で素数である数を与えていることに気付きました。したがって、引数に 10 を入れても、最初の数は得られません。 10 個の素数を計算すると、2、3、5、6、7、9 になります。
すると、6 と 9 が素数ではないことに気付きました。そのため、for ループを修正しようとしましたが、6 を取り除くことしかできませんでした。
プログラムをいじろうとしていますが、方法がわかりません
- N の範囲の素数ではなく、最初の N 個の素数を出力し、
- 素数のみが含まれるようにループを修正します。
私の現在の考えは、N を再定義しようとすることですが、その後、私が書いた行に "'.class' expected" というエラー メッセージが表示されますN=boolean class Prime
。このプログラムでは配列を使用する必要があるかもしれないと思いますが、私は Java を初めて使用するので、これはかなり難しくなっています。
public class Prime{
public static void main (String[] args){
int N;
try{
N=Integer.parseInt(args[0]);
}catch(NumberFormatException e){
System.out.println("Please enter only valid integers.");
System.out.println(e.getMessage());
return;
}
if(N<=0){
System.out.println("N must be a positive integer larger than 0.");
return;
}
N=boolean class Prime;
for(int i=2; i<N; i++){
boolean Prime=true;
for (int j=2; j<i; j++) {
if (i%j==0) {
Prime=false;
}
break;
}
if (Prime) {
System.out.println(i+" ");
}
}
}