题目
将一个正整数分解质因数。例如:输入 90,打印出 90=2*3*3*5
分析
把一个合数用质因数相乘的形式表示出来,叫做分解质因数。
分解质因数只针对合数。
方法:
90 / 2 = 45 余数:0
45 / 2 = 22 余数:1 (不行)
45 / 3 = 15 余数:0
15 / 3 = 5 余数:0 (5是质数)
结束
规律:从最小的质数2开始除,余数为0则是质因数,余数为1找下一个质数3,直至
Java实现
质数判断的方法
public static boolean prime(int a){
boolean flag = true;
for (int i = 2; i < a; i++) {
if (a % i == 0 ) flag = false;
}
return flag;
}
分解质因数
public static void example03(){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
StringBuffer sb = new StringBuffer();
sb.append(n+"=");
if (prime(n) || n <= 2 ) {
System.out.println("输入的不是合数");
}
int i = 2; //除数
while (!prime(n)){
if (n % i == 0) {
sb.append(i+"*");
n = n/i;
continue;
}else {
while (true){
i++;
if (prime(i)) break;
}
}
}
sb.append(n);
System.out.println(sb);
}