完美數(shù)和真因子是數(shù)論領(lǐng)域里常見的概念。在Java中,我們可以使用代碼來求解完美數(shù)和真因子。
/** * 判斷一個數(shù)是否為完美數(shù) * * @param n 需要判斷的數(shù) * @return true表示是完美數(shù),false表示不是完美數(shù) */ public static boolean isPerfectNumber(int n) { int sum = 1; for (int i = 2; i<= n / 2; i++) { if (n % i == 0) { sum += i; } } return sum == n; } /** * 求一個數(shù)的真因子 * * @param n 需要求真因子的數(shù) * @return 真因子列表 */ public static ListgetProperFactors(int n) { List factors = new ArrayList<>(); for (int i = 2; i<= n / 2; i++) { if (n % i == 0) { factors.add(i); } } return factors; }
以上是Java求解完美數(shù)和真因子的代碼。對于isPerfectNumber方法,我們可以利用循環(huán)遍歷出所有n的因子,求和后判斷是否等于n。如果相等,則n是完美數(shù)。對于getProperFactors方法,我們同樣使用循環(huán)遍歷出所有n的因子,放在一個List中返回。
通過以上代碼,我們可以高效地求解完美數(shù)和真因子。