Martyr2專案實現——Number部分問題求解(3) Prime Factorization
阿新 • • 發佈:2020-10-20
Martyr2專案實現——Number部分問題求解(3) Prime Factorization
質因子分解
問題描述:
Prime Factorization – Have the user enter a number and find all Prime Factors (if there are any) and display them.
翻譯:
質因子分解:給定一個整數N,找到並輸出他的全部質因子
原理:
質因數分解,是將一個正整數寫成幾個約數的成績,並且這些約數都是質數
給定一個合數n(這裡,n是待分解的正整數),試除法看成是用小於等於\(\sqrt{n}\)的每個素數去試除待分解的整數。如果找到一個數能夠整除除盡,這個數就是待分解整數的因子。試除法一定能夠找到n
演算法實現:
public static ArrayList<Long> PrimeFactor(long N){ //使用短除法來找到一個合數的全部質因子 long k = (long)Math.sqrt(N); ArrayList<Long> list = new ArrayList<>(); for(long i=2;i<=k;i++) { while (N % i == 0) { list.add(i); N /= i; } } if(N!=1) list.add(N); return list; //返回質因子構成的列表 }