Số hoàn hảo

Xem dạng PDF

Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, Python

Một số nguyên dương là số hoàn hảo nếu nó bằng tổng các ước dương của nó không kể chính nó (ví dụ ~6 = 1 + 2 + 3~). Cho số nguyên dương ~n~, hãy kiểm tra xem ~n~ có phải số hoàn hảo không.

Dữ liệu vào

Một số nguyên dương ~n~ (~1 \le n \le 10^9~).

Kết quả

In ra YES nếu ~n~ là số hoàn hảo, ngược lại in NO.

Ví dụ

Ví dụ 1

Input:

6

Output:

YES

Ví dụ 2

Input:

12

Output:

NO

Giải thích

Ước ~d~ luôn đi cùng ước ~n / d~, nên chỉ cần duyệt ~d~ đến ~\sqrt{n}~ (khoảng ~31623~ lần với ~n = 10^9~). Cẩn thận để không cộng một ước hai lần khi ~d \times d = n~.


Đang tải...