Menu
CoddyTech

Perfect Number

Faktor sejati dari n adalah faktor positif yang lebih kecil daripada n itu sendiri. Bilangan sempurna sama dengan jumlah faktor sejatinya: 6 = 1 + 2 + 3. Kamu mendapatkan bilangan bulat positif n. Kembalikan true jika n sempurna dan false jika tidak.

Fungsi

isPerfect(n: integer) → boolean
ninteger
bilangan bulat positif yang akan diuji
Mengembalikanboolean
benar jika n sama dengan jumlah pembagi sejatinya, salah jika tidak

Batasan

  • 1 ≤ n ≤ 108

Contoh

Input
n = 28
Output
true
Penjelasan
Pembagi sejati dari 28 adalah 1, 2, 4, 7, dan 14. Jumlah semuanya adalah 28, jadi 28 adalah bilangan sempurna.
challenge icon

Pertanyaan lanjutan

Setiap bilangan sempurna genap berbentuk 2^(p-1) × (2^p-1), dengan 2^p-1 adalah bilangan prima. Bisakah kamu mencantumkan semua bilangan sempurna di bawah 10^8 dengan rumus itu, tanpa menguji setiap bilangan?

Reset kode
def isPerfect(n):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

n = 28

Output yang diharapkan

true