Đây là thử thách đầu tiên của tôi!
Lý lịch
Số hoàn hảo là một số nguyên dương, bằng tổng của tất cả các ước của nó, ngoại trừ chính nó.
Vì vậy, 6là số hoàn hảo, kể từ 1 + 2 + 3 = 6.
Mặt khác 12thì không, bởi vì 1 + 2 + 3 + 4 + 6 = 16 != 12.
Bài tập
Nhiệm vụ của bạn rất đơn giản, hãy viết một chương trình, trong đó sẽ đưa nra một trong những thông báo sau:
Tôi là một số hoàn hảo, bởi vì
d1 + d2 + ... + dm = s == n
tôi không phải là một số hoàn hảo, bởi vìd1 + d2 + ... + dm = s [<>] n
Trường hợp
d1, ... dmtất cả các ước của nngoại trừ n.
slà tổng của tất cả các ước d1, ..., dm(một lần nữa, không có n).
[<>]là <(nếu s < n) hoặc >(nếu s > n).
Ví dụ
Cho nlà 6: "Tôi là một số hoàn hảo, bởi vì 1 + 2 + 3 = 6 == 6"
cho nlà 12: "Tôi không phải là một số hoàn hảo, bởi vì 1 + 2 + 3 + 4 + 6 = 16> 12"
cho nhạnh phúc 13: "Tôi không phải là một số hoàn hảo, vì 1 = 1 <13"
Quy tắc
nkhông lớn hơn tiêu chuẩn ngôn ngữ của bạnint.- Bạn có thể đọc
ntừ đầu vào tiêu chuẩn, từ các đối số dòng lệnh hoặc từ một tệp. - Thông báo đầu ra phải được in trên đầu ra tiêu chuẩn và không có ký tự bổ sung nào có thể xuất hiện trong đầu ra (nó có thể có khoảng trắng ở cuối hoặc dòng mới)
- Bạn không được sử dụng bất kỳ chức năng tích hợp hoặc thư viện nào sẽ giải quyết nhiệm vụ (hoặc phần chính của nó) cho bạn. Không
GetDivisors()hoặc một cái gì đó như thế. - Tất cả các sơ hở tiêu chuẩn khác áp dụng.
Người chiến thắng
Đây là mã golf để mã ngắn nhất tính theo byte thắng!
=và ==trong cùng một phương trình? Điều đó không có ý nghĩa. Nó phải là d1 + d2 + ... + dm = s = nIMO.