原文:所以对于我的编程课介绍,我们必须找到用户输入的一系列数字(即 59-65)的质因数。这里很多解决方案的问题是它们使用了我们在课堂上没有讨论过的东西,比如数组、继续等。这是一个非常基本的类。至于要求,我们必须使用我们在第一个 for 循环中调用的 primeFact 方法/函数。她指示我们在方法中使用 while 和 for 循环来获取主要因素,但每次我认为我有一些东西时,它都不会正确。非常感谢任何帮助,我的代码如下。我真的只需要方法部分的帮助来寻找因素的算法。
编辑:这是我上交的最终解决方案。它可以工作,并且会给出给定数字范围内所有数字的所有素数。
import java.util.Scanner;
public class PrimeFact {
public static void main(String[] args) {
int start, stop;
//Get input
Scanner input = new Scanner(System.in);
System.out.println("Please enter then two values with the lower value first");
start = input.nextInt();
stop = input.nextInt();
input.close();
//Displays for the start of the loop
System.out.println("Starting value (at least two digits): "+start);
System.out.println("Ending value (at least two digits): "+stop);
System.out.println("Prime factors for numbers between "+start+" and "+stop);
//Loop for the prime factors
for (int num = start; num <= stop; num++) {
primeFact(num);
}
}
// Method for Prime Factoring
public static void primeFact(int num) {
int divisor = 2;
System.out.print(num+" = ");
while (num>1) {
if ((num%divisor) == 0) {
System.out.print(divisor+" x ");
num=num/divisor;
} else {
divisor++;
}
}
System.out.print("1");
System.out.println();
}
}