isPerfect函式。這個函式會接受一個整數x作為輸入,然後檢查這個數是否為完美數。完美數的定義是它的所有真因數(即除了自身外的因數)之和等於它本身。例如,6的真因數是1、2和3,且1+2+3=6,所以6是一個完美數。
以下是isPerfect函式的C語言實現:
#include <stdio.h>
// 函式原型宣告
int isPerfect(int x);
int main() {
int number;
printf("Enter a number to check if it's a perfect number: ");
scanf("%d", &number);
if (isPerfect(number)) {
printf("%d is a perfect number.\n", number);
} else {
printf("%d is not a perfect number.\n", number);
}
return 0;
}
// 檢查一個數字是否為完美數的函式
int isPerfect(int x) {
int sum = 0;
// 尋找所有小於x的正因數並計算它們的總和
for (int i = 1; i <= x / 2; i++) {
if (x % i == 0) {
sum += i;
}
}
// 如果因數的總和等於x,則x是一個完美數
if (sum == x && x != 0) {
return 1;
} else {
return 0;
}
}
在這個實現中,isPerfect函式首先初始化一個叫做sum的變數來存儲因數的總和。然後,它通過一個循環遍歷所有小於或等於x/2的數字(因為一個數字的真因數不會大於它的一半)。如果某個數字是x的因數,即x除以這個數字的餘數為0,則將這個因數加到sum上。最後,如果sum等於x,且x不為0,則函式返回1,表示x是一個完美數;否則,返回0,表示它不是一個完美數。