我正在尝试编写一个打印所有素因子的程序,并从用户输入中指定数字的最小素因子。(例如,如果给出 12,则质因数是 2、2 和 3。)我进行了一些搜索,但所有能记住所有质因数的程序的结果似乎都使用 <>。由于某种原因,这无法识别。我想知道是否有其他方法可以解决这个问题?
编辑:我已经成功打印了最低因子,但在打印所有素因子时仍然遇到问题。编辑代码:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class PrimeFactor {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("Please enter an integer");
long n = in.nextLong();
System.out.println("Smallest prime factor of "+n+" is "+leastFactor(n));
}
public static ArrayList<Integer> leastFactor(long n) {
ArrayList primeFactors = new ArrayList<Integer>();
for (int i=2; i<=n; i++) {
if (n%i==0) {
primeFactors.add(i);
}
}
if(primeFactors.size() > 0){
return (primeFactors);
}
}
}