要計算正整數 n 含有質數 p 的因數次數,我們可以通過遞迴地除以 p 來實現。如果 n 可以被 p 整除,我們將 n 除以 p 並將次數加一,然後繼續遞迴處理結果;如果 n 不能被 p 整除,我們將次數返回為0。這樣,我們可以計算出 n 被 p 整除的總次數。
以下是實現 FactorTimes 函數的 Java 程式碼:
public class PrimeFactorTimes {
/**
* 遞迴函數計算正整數 n 含有質數 p 的因數次數。
*
* @param n 目標正整數
* @param p 質數
* @return n 含有質數 p 的因數次數
*/
public static int FactorTimes(int n, int p) {
// 如果 n 能被 p 整除,則進入遞迴
if (n % p == 0) {
return 1 + FactorTimes(n / p, p);
} else {
// 如果 n 不能被 p 整除,返回0
return 0;
}
}
public static void main(String[] args) {
System.out.println("FactorTimes(792, 2): " + FactorTimes(792, 2)); // 應該回覆 3
System.out.println("FactorTimes(792, 3): " + FactorTimes(792, 3)); // 應該回覆 2
System.out.println("FactorTimes(792, 5): " + FactorTimes(792, 5)); // 應該回覆 0
System.out.println("FactorTimes(792, 11): " + FactorTimes(792, 11)); // 應該回覆 1
}
}
這個實現首先檢查 n 是否能被 p 整除,如果能,則進入遞迴,除以 p 並將次數加一;如果不能,則返回0。這樣,通過遞迴函數,我們可以獲得 n 被 p 整除的總次數。