给你一个整数n,将它拆分成他所有最小因子(大于1)的连乘形式,同时遵守最小因子优先的原则,小的因子在前面,如n=6,则输出2*3=6。
package com;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
while (s.hasNextInt()){
System.out.println(mul(s.nextInt()));
}
}
public static String mul(int num){
StringBuilder sb = new StringBuilder();
String number = String.valueOf(num);
List<Integer> list = new LinkedList<Integer>();
for(int i=2;i<=num;i++){
while(num%i==0){
num/=i;
list.add(i);
}
}
for(int i=0;i<list.size();i++){
if(i==(list.size()-1)){
sb.append(list.get(i));
}else{
sb.append(list.get(i));
sb.append("*");
}
}
sb.append("=");
sb.append(number);
return sb.toString();
}
}
如:
输入:
5
6
24
输出:
5=5
2*3=6
2*2*2*3=24