题目:将一个正整数分解质因数。例如:输入
90,打印出90=2*3*3*5。
程序分析:
(1)
对
n进行分解质因数,应先找到一个最小的质数k
(2)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(3)如果n不等于k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。
(4)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
代码:
import org.junit.Test;
public class DecomposePrime {
/*
* 分解质因数的方法
*/
public String decomposePrime(int number) {
StringBuffer tempStr = new StringBuffer();
tempStr.append(number).append("=");
for(int i = 2;i <= number;i++) {
while(number % i == 0 && number != i) {
number /= i;
tempStr.append(i).append("*");
}
if(number == i) {
tempStr.append(i);
}
}
return tempStr.toString();
}
//测试方法
@Test
public void test() {
System.out.println(decomposePrime(90));//--->90=2*3*3*5
System.out.println(decomposePrime(50));//--->50=2*5*5
System.out.println(decomposePrime(30));//--->30=2*3*5
}
}