【发布时间】:2020-10-17 10:11:12
【问题描述】:
我想创建一个程序,要求用户使用数组输入 5 个整数并确定输入的所有素数。但我有困难。似乎是什么问题?我为此使用 JCreator。
package arrays;
import java.util.Scanner;
public class Examples {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in) ;
System.out.println("Total numbers : ");
int n = sc.nextInt();
boolean isPrime =true;
int result =0;
System.out.println("Enter the Numbers : ");
int [] numbers = new int[n];
for(int i=0;i<n;i++) {
numbers[i]=sc.nextInt();
}
for(int i=0;i<n;i++) {
for(int j=2;j*j<numbers[i];j++) {
if(numbers[i]%j ==0) {
isPrime =false ;
break;
}
}
}
if(isPrime) {
System.out.println("The Prime Numbers : " +numbers[i]);
}
}
}
【问题讨论】:
-
似乎是什么问题?您能否编辑您的问题,详细说明您的代码如何不起作用?
-
顺便说一句,我建议将
if (isPrime)部分放在第二个 for 循环(外部循环)中。缓存素数也不会受到伤害 -
您输入了多个数字,但您只有一个 isPrime 值
-
System.out.println("The Prime Numbers : " +numbers[i]);这一行有问题 --i超出范围 -
请阅读minimal reproducible example并完善您的问题
标签: java arrays loops if-statement while-loop