把一个合数分成质数的乘积
public class Solution {
public ArrayList<ArrayList<Integer>> factorization(int n){
ArrayList<Integer> list = new ArrayList<>();
for(int i = 2; i<=n; i++){
while(n!=i){
if(n%i != 0){
break;
}
list.add(Integer.valueOf(i)); // Integer. valueOf()可以将基本类型int转换为包装类型Integer
n=n/i;
}
}
list.add(Integer.valueOf(n));
HashMap<Integer,Integer> hashmap = new HashMap();
for(int i=0;i<list.size();i++){
int count = hashmap.getOrDefault(list.get(i),0)+1;
hashmap.put(list.get(i),count);
}
ArrayList<ArrayList<Integer>> res = new ArrayList<>();
for(Map.Entry<Integer,Integer> entry:hashmap.entrySet()){
ArrayList<Integer> re1 = new ArrayList<>();
re1.add(entry.getKey());
re1.add(entry.getValue());
res.add(re1);
}
return res;
}
public static void main(String args[]){
Solution s = new Solution();
ArrayList<ArrayList<Integer>> a = s.factorization(15);
System.out.println(a);
}
}