15 Jun 2024C++ / Python / TypeScriptEasy

Perfect Number

Collected C++, Python, TypeScript solutions for perfect number. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Perfect Number. the solution files are available below.

solution files

  • C++ perfect-number/synced-solution.cpp
  • Python perfect-number/synced-solution.py
  • TypeScript perfect-number/synced-solution.ts

Solution files

Pythonperfect-number/synced-solution.py
class Solution:
    def checkPerfectNumber(self, num: int) -> bool:
        if num <= class="syntax-number">1:
            return False

        total = class="syntax-number">1
        factor = class="syntax-number">2
        while factor * factor <= num:
            if num % factor == class="syntax-number">0:
                total += factor
                if factor * factor != num:
                    total += num class=class="syntax-string">"syntax-comment">// factor
            factor += class="syntax-number">1
        return total == num
C++perfect-number/synced-solution.cpp
class Solution {
public:
    bool checkPerfectNumber(int num) {
        if (num <= class="syntax-number">1) {
            return false;
        }

        int total = class="syntax-number">1;
        for (int factor = class="syntax-number">2; factor * factor <= num; factor++) {
            if (num % factor == class="syntax-number">0) {
                total += factor;
                if (factor * factor != num) {
                    total += num / factor;
                }
            }
        }
        return total == num;
    }
};
TypeScriptperfect-number/synced-solution.ts
function checkPerfectNumber(num: number): boolean {
    if (num <= class="syntax-number">1) {
        return false;
    }

    let total = class="syntax-number">1;
    for (let factor = class="syntax-number">2; factor * factor <= num; factor++) {
        if (num % factor === class="syntax-number">0) {
            total += factor;
            if (factor * factor !== num) {
                total += Math.floor(num / factor);
            }
        }
    }
    return total === num;
}