Đề bài
Xem bản gốc (English)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ụ
Đầ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.
Đầ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.