Tất cả thử thách
Dễ 0 đã giải Tỷ lệ chấp nhận 0%

Phân Loại Một Số Theo Các Ước Số Của Nó

Phân loại một số nguyên dương là số hoàn hảo, số dư thừa hoặc số thiếu.

Cộng tất cả các ước số dương của n nhỏ hơn n. Nếu tổng này bằng n, đó là số hoàn hảo. Nếu tổng lớn hơn, đó là số dư thừa; nếu nhỏ hơn, đó là số thiếu. Số 1 không có ước số dương thực sự nào, nên tổng các ước của nó là 0.

Cài đặt hàm perfect_number(n).

Đầu vào

n: Số nguyên dương cần phân loại.

Đầu ra

Trả về perfect, abundant hoặc deficient dưới dạng chữ thường.

Ràng buộc

1 ≤ n ≤ 1.000.000. Loại trừ các giá trị bằng 0 và âm.

Ví dụ

Ví dụ 1
Đầu vào:
n = 18

Kết quả mong đợi:
expected = "abundant"
Đầu vào:
long long n = 18;

Kết quả mong đợi:
std::string expected = "abundant";
Đầu vào:
long n = 18;

Kết quả mong đợi:
string expected = "abundant";

Giải thích

Các ước số thực sự là 1, 2, 3, 6 và 9. Tổng của chúng là 21, lớn hơn 18.

Ví dụ 2
Đầu vào:
n = 28

Kết quả mong đợi:
expected = "perfect"
Đầu vào:
long long n = 28;

Kết quả mong đợi:
std::string expected = "perfect";
Đầu vào:
long n = 28;

Kết quả mong đợi:
string expected = "perfect";

Giải thích

Tổng các ước số thực sự là 1 + 2 + 4 + 7 + 14 = 28, đúng bằng chính số đó.

Tham khảo

Thử thách này đã được điều chỉnh cho CodeUtility. Hãy làm theo đề bài và các ràng buộc ở trên.

Học hỏi từ người khác

Giải pháp cộng đồng

Chưa có giải pháp nào được chia sẻ. Hãy giải thử thách này để đăng giải pháp đầu tiên.