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