问题描述
设计算法,用户输入合数,程序输出若个素数的乘积。例如,输入6,输出2*3。输入20,输出2*2*5。
样例
与上面的样例输入对应的输出。
例:
例:
数据规模和约定
输入数据中每一个数在int表示范围内。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
devide(num);
}
private static void devide(int num) {
StringBuffer buffer = new StringBuffer();
devide(buffer,num,2);
System.out.println(buffer.toString());
}
private static void devide(StringBuffer buffer, int num, int start) {
boolean flag = false;
int temp = num;
for (int i = start; i <= Math.sqrt(num); i++) {
if(num % i == 0){
buffer.append(i+"*");
temp = num / i;
start = i;
flag = true;
break;
}
}
if(flag){
devide(buffer,temp,start);
} else {
buffer.append(temp);
}
}
}