java通过递归实现质因数分解,代码如下:
import java.util.Scanner;
public class Prime {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要分解的数:");
int num = scanner.nextInt();
PrimeSplit(num, 2);
}
/**
* 获取质因数
* @param num 需要分解的数
* @param count=2
*/
public static void PrimeSplit(int num,int count){
while( count < num && num % count != 0 ){
//获取该数最小质数公约数
count ++;
}
if(count < num){
System.out.print(count + "*");
//获取商的最小质数公约数
PrimeSplit(num/count, 2);
}else{
//如果商和最小质数公约数相同,那么说明是他本身,循环结束。
System.out.println(count );
}
}
}
运行程序,输入分解数,运行结果如下;
请输入要分解的数:71344
2 * 2 * 2 * 2 * 7 * 7 * 7 * 13