題目:將一個正整數分解質因數。例如:輸入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
}
}