有时候,我们需要对一个数字进行因数分解,我用递归帮我们做这件事情,如有不妥之处,还望各位朋友指正!
package com.aiy.test;
/**
* @author aiyanbo
* @email ayanbo@yeah.net
*/
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
Test test=new Test();
for (Integer i : test.factor(64)) {
System.out.print(i+"\t");
}
}
private ArrayList<Integer> list=new ArrayList<Integer>(0);
private void dissolution(int i){
for(int j=2;j<i;j++){
if(i%j==0){
list.add(j);
dissolution(i/j);
break;
}
}
}
private void last(int i){
int temp=1;
for (Integer num : list) {
temp*=num;
}
if(i/temp>=2)
list.add(i/temp);
}
public ArrayList<Integer> factor(int i){
dissolution(i);
last(i);
return list;
}
}