将一个正整数分解质因数
程序分析:对 n 进行分解质因数,应先 p 找到一个最小的质数 k,然后按下述步骤完成:
(1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果 n<>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数
n,重复执行第一步。
(3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。
import java.util.Scanner;
public class Demo {
// n代表需要输入的正整数
static int n, k = 2;
public static void main(String[] args) {
System.out.println("请输入一个大于2的整数");
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
System.out.print(n + "=");
new Demo().f(n);
}
static void f(int n) {
while (n >= k) {
if (n == k) { //若初始n=k,说明n是质数,不能分解
System.out.print(k);//这里也是结尾条件
break; //三个break不要忘了
} else if (n > k && n % k == 0) {//此时k是n的因数
n /= k;
System.out.print(k + "*");
f(n); //递归,此时n已经更新为n/k
break;
} else if (n > k && n % k != 0) {//此时k不是n的因数
k++; //n不变,k自增,直到k为n的因数,走上一个else if语句
f(n);
break;
}
}
}
}