class NodeTestOne {
public static void main(String[] args) {
/*
其实就是找因数,如果为2,就是可行的,直接变,如果为4,就分成两个2,
如果为3,就-1,分成2和1
为6 就分成 2和3, 3!=2 ,继续拆分,如果3是质数,直接-1;
*/
List<Integer> list = new ArrayList<>();
List<Integer> listItr = new ArrayList<>();
List<Integer> curList = new ArrayList<>();
Integer record = 0;
list.add(2);
list.add(6);
for (int i = 0; i < list.size(); i++) {
int num = list.get(i);
if(num==1)continue;
if(num==2){
curList.add(0);
continue;
}
Iterator(list.get(i), listItr, num, curList);
}
System.out.println(curList.size());
}
private static void Iterator(Integer integer, List<Integer> listItr, int num, List<Integer> curList) {
if(integer==2){
curList.add(0);
return ;
}
for (int j = 2; j < integer; j++) {
if(j>num)break;
while(num%j==0){
if(j==2){
num = num / j;
curList.add(0);
break;
}else {
num = num / j;
curList.add(0);
listItr.add(j);
break;
}
}
}
int temNum = 0 ;
if(!listItr.isEmpty()){
for (int i = 0; i < listItr.size(); i++) {
temNum = listItr.get(i);
Iterator(listItr.get(i), new ArrayList<>(), temNum, curList);
}
}else if(listItr.isEmpty()&&integer>2){
integer -= 1;
temNum = integer;
curList.add(0);
Iterator(integer, new ArrayList<>(), temNum, curList);
}
}
}#京东笔试#