[Java] 纯文本查看 复制代码 package com.heima.employee.restday.demo02;
/**
*【程序4】
* 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
*/
/**
* @author NOT ME
* @description 递归练习题demo02第四题
* @create 2018/11/15 0015下午 4:52
*/
public class Coder04 {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
StringBuilder tempSb = new StringBuilder();
int num = 100000000;
String s = printNum(num);
char[] chars = s.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (i == chars.length - 1) {
break;
}
tempSb.append(chars[i]);
}
System.out.println(num + "=" + tempSb.toString());
}
/**
* 先计算出最小的质数,然后再对num除以i的商进行递归。
* @param num 正整数
* @return: String 字符串
* @Date: 2018/11/15 0015 下午 8:08
*/
private static String printNum(int num) {
// 先求出最小的质数,然后再进行递归
for (int i = 2; i <= num; i++) {
if (num % i == 0) {
// 最小的质数,不再向下进行循环,再对num除以i的商进行递归。
sb.append(i).append("*");
int consult = num / i;
printNum(consult);
break;
}
}
return sb.toString();
}
}
|