使用 TypeScript 陣列的求和來判斷是否為完全數(isPerfectNumber)

完全數(Perfect number)是指一個數字,它的所有因數(不包括該數本身)的總和,等於該數本身。例如,6 的因數有 1、2、3,1 + 2 + 3 = 6,因此 6 是一個完全數。

在 TypeScript 中,可以使用陣列的求和來判斷一個數字是否為完全數。

程式碼範例

function isPerfectNumber(num: number): boolean {
    let sum = 0;
    for (let i = 1; i < num; i++) {
        if (num % i === 0) {
            sum += i;
        }
    }
    return sum === num;
}

console.log(isPerfectNumber(6)); // true
console.log(isPerfectNumber(7)); // false

上面的程式碼中,我們使用一個 for 迴圈來計算出該數字的所有因數,並將它們加總起來,最後比較加總的結果是否等於該數字本身,如果相等,則表示該數字是一個完全數。

此外,我們還可以使用 數學公式 來判斷一個數字是否為完全數:

function isPerfectNumber(num: number): boolean {
    return num === Math.pow(2, num - 1) * (Math.pow(2, num) - 1);
}

console.log(isPerfectNumber(6)); // true
console.log(isPerfectNumber(7)); // false

上面的程式碼中,我們使用了數學公式來判斷一個數字是否為完全數,公式如下:

2n-1 * (2n - 1)

其中,n 是一個正整數,如果該數字等於上面的公式,則表示該數字是一個完全數。

總結

在 TypeScript 中,可以使用陣列的求和或是數學公式來判斷一個數字是否為完全數。這個方法可以讓我們快速的判斷一個數字是否為完全數,而不需要一個一個的計算出該數字的所有因數。

Categorized in:

Tagged in: