Lewati ke konten
🛠️ToolsShed

Perfect Number Checker

Periksa apakah angka sempurna, defisien, atau berlimpah. Temukan pembagi yang tepat dan jumlah pembagi.

Cari Bilangan Sempurna

Bilangan Sempurna yang Diketahui

Tentang alat ini

Bilangan sempurna merepresentasikan fenomena matematis yang jarang terjadi, di mana bilangan bulat positif sama dengan jumlah semua pembagi sejatinya—sebuah sifat yang sangat elegan sehingga matematikawan kuno menganggapnya sakral. Bilangan-bilangan ini terhubung secara mendalam dengan studi teori bilangan, faktorisasi prima, dan keindahan matematis, menjadi jauh lebih dari sekadar keingintahuan. Bilangan sempurna telah memikat imajinasi matematikawan selama lebih dari dua ribu tahun, dan misteri mereka terus berlanjut hingga hari ini dengan hanya 51 contoh yang diketahui meskipun berabad-abad pencarian.

Gunakan pemeriksa ini untuk mengeksplorasi klasifikasi bilangan bulat apa pun: apakah itu sempurna, lebih (dengan jumlah pembagi melebihi dirinya sendiri), atau kurang (dengan jumlah pembagi kurang)? Alat ini segera menghitung semua pembagi sejati dan jumlahnya, memberikan transparansi lengkap tentang struktur bilangan. Ini sangat berharga bagi siswa yang belajar sifat-sifat kebahagiaan, matematikawan yang menyelidiki pola teori bilangan, peneliti yang bekerja pada algoritma bilangan prima Mersenne, atau siapa pun yang ingin tahu tentang struktur aritmetika tersembunyi dalam bilangan.

Menariknya, semua bilangan sempurna yang diketahui adalah genap dan mengikuti rumus elegan Euler: 2^(p−1) × (2^p − 1) di mana (2^p − 1) adalah bilangan prima Mersenne. Pencarian untuk bilangan sempurna baru setara dengan menemukan bilangan prima Mersenne baru—suatu pencarian yang menghubungkan matematika rekreasi dengan penelitian komputasi mutakhir melalui proyek seperti GIMPS. Baik Anda memverifikasi dugaan, mengajar sifat-sifat pembagi, atau sekadar terpukau dengan struktur matematis, alat ini mengubah teori bilangan abstrak menjadi hasil yang nyata dan dapat diverifikasi.

Pertanyaan yang Sering Diajukan

Implementasi Kode

def get_proper_divisors(n: int) -> list[int]:
    """Get all proper divisors of n (excluding n itself)."""
    if n <= 1:
        return []
    divisors = [1]
    i = 2
    while i * i <= n:
        if n % i == 0:
            divisors.append(i)
            if i != n // i:
                divisors.append(n // i)
        i += 1
    return sorted(divisors)

def check_perfect(n: int) -> dict:
    """Check if n is perfect, deficient, or abundant."""
    if n <= 0:
        return {"error": "Must be positive"}

    divisors = get_proper_divisors(n)
    divisor_sum = sum(divisors)

    if divisor_sum == n:
        classification = "perfect"
    elif divisor_sum < n:
        classification = "deficient"
    else:
        classification = "abundant"

    return {
        "number": n,
        "divisors": divisors,
        "divisor_sum": divisor_sum,
        "is_perfect": divisor_sum == n,
        "classification": classification,
        "difference": n - divisor_sum
    }

# Known perfect numbers
perfect_numbers = [6, 28, 496, 8128, 33550336]
for p in perfect_numbers:
    r = check_perfect(p)
    print(f"{p}: {r['classification']} (divisors sum = {r['divisor_sum']})")
    print(f"  Divisors: {r['divisors']}")

# Find abundant numbers up to 100
print("\nAbundant numbers up to 100:")
abundant = [n for n in range(2, 101) if check_perfect(n)["classification"] == "abundant"]
print(abundant)

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.