Menu
CoddyTech

Perfect Number

Người mớiToán và mô phỏngpython iconjava iconcpp iconc iconjs icon+10

Ước thực sự của n là một ước dương nhỏ hơn chính n. Một số hoàn hảo bằng tổng các ước thực sự của nó: 6 = 1 + 2 + 3. Bạn được cho một số nguyên dương n. Trả về true nếu n là số hoàn hảo và false nếu không phải.

Hàm

isPerfect(n: integer) → boolean
ninteger
số nguyên dương cần kiểm tra
Trả vềboolean
đúng nếu n bằng tổng các ước thực sự của nó, ngược lại là sai

Ràng buộc

  • 1 ≤ n ≤ 108

Ví dụ

Đầu vào
n = 28
Đầu ra
true
Giải thích
Các ước thực sự của 28 là 1, 2, 4, 7 và 14. Tổng của chúng bằng 28, nên 28 là số hoàn hảo.
challenge icon

Câu hỏi mở rộng

Mọi số hoàn hảo chẵn đều có dạng 2^(p-1) × (2^p-1), trong đó 2^p-1 là số nguyên tố. Bạn có thể liệt kê tất cả các số hoàn hảo nhỏ hơn 10^8 bằng công thức đó mà không cần kiểm tra từng số không?

Đặt lại code
def isPerfect(n):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

n = 28

Đầu ra mong đợi

true