我正在尝试创建一个程序,它将输出 N(N 是参数)素数(每行一个数字)。我的代码正常工作,但我意识到它并没有给我 N 个素数,它给了我 N 中的素数。所以如果我为我的论点输入 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+" ");
}
}
}