我将发布问题,然后发布我目前完成的代码。我觉得我很接近它,但我被困在一个我似乎无法弄清楚的部分。开始:
问题:创建一个存储 N 个数字的向量。通过控制台将 N 个非负数输入到数组中。然后创建另一个向量,它只存储 N 个数中的 M 个质数。
到目前为止我的代码:
import java.util.*;
public class VectorPrimes {
public static Vector<Integer> inputVc = new Vector<Integer>();
public static Vector<Integer> primeVc = new Vector<Integer>(inputVc);
public static boolean isPrime(int n) {
boolean prime = true;
for (int i = 2; i * i <= n; i+= 2) {
if (n % i == 0) {
prime = false;
break;
}
}
return prime;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out
.println("This program will take input of positive numbers and output"
+ " prime numbers, if any, from the input numbers.");
System.out
.println("Input a positive number to check for prime numbers: ");
boolean looping = true;
while (looping) {
System.out
.println("Input '0' to finish inputting numbers and print the primes.");
String userin = scan.nextLine();
int input = Integer.parseInt(userin);
if (input != 0) {
System.out.println("Enter next number: ");
inputVc.add(input);
} else if (input == 0) {
//Integer[] inputArray = inputVc.toArray(new Integer[inputVc.size()]);
looping = false;
System.out.println(inputVc);
System.out.print(primeVc);
System.exit(0);
}
}
}
}
我确信这不是最好的方法,但这就是我到目前为止所拥有的。需要明确的是,我无法将输入向量 (inputVc) 中的输入数字放入数组 (inputArray) 中,然后将素数存储在素数向量 (primeVc) 中并打印它们。我尝试了 3 或 4 种不同的方法,但我无法将任何东西存储在 primeVc 向量中,它只是保持打印空白。
我不是要代码,我想弄清楚的是如何将素数输入到 primeVc 向量中,然后打印出来。当然 inputVc 数字需要通过 isPrime 方法运行,然后如果为真则添加到 primeVc 向量中,但我很确定这就是我遇到问题的地方。
大家看到什么了??我肯定错过了一些东西,并且无法为我的生活弄清楚。