ユーザー入力から数値の最小の素因数を指定するだけでなく、すべての素因数を出力するプログラムを作成しようとしています。(例: 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);
}
}
}