题解 | #质数因子#--利用递归方法
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int num = in.nextInt(); // 利用递归方法 getPrime(num); } } // 获取质数因子 private static void getPrime(int num) { if (isPrime(num)) { System.out.print(num + " "); } int sqrt = (int) Math.sqrt(num); // 是否能被小于等于sqrt的数整除 for (int i = 2; i <= sqrt; i++) { if (num % i == 0) { System.out.print(i + " "); // 判断是否是质数 if (isPrime(num / i)) { System.out.print(num / i + " "); break; } getPrime(num / i); break; } } } private static boolean isPrime(int num) { if (num <= 3) { return true; } int sqrt = (int) Math.sqrt(num); for (int i = 2; i <= sqrt; i++) { if (num % i == 0) { return false; } } return true; } }