Kiểm tra số chính phương
Viết chương trình nhập vào một số nguyên dương \(n\). Kiểm tra xem \(n\) có phải là số chính phương hay không.
Một số được gọi là số chính phương nếu nó là bình phương của một số nguyên. Nói cách khác, số \(n\) là số chính phương nếu tồn tại số nguyên \(k\) sao cho \(k^2 = n\).
Ví dụ: \(16\) là số chính phương vì \(16 = 4^2\); \(25\) là số chính phương vì \(25 = 5^2\).
Input
Một dòng chứa số nguyên dương \(n\) (\(1 \le n \le 10^{12}\)).
Output
Nếu \(n\) là số chính phương, in ra YES. Ngược lại, in ra NO.
Ví dụ
| Input | Output |
|---|---|
| 4 | YES |
| 5 | NO |
| 16 | YES |
| 1 | YES |
Giải thích ví dụ
- \(4 = 2^2\) nên là số chính phương, kết quả là YES.
- \(5\) không phải là bình phương của số nguyên nào, kết quả là NO.
- \(16 = 4^2\) nên là số chính phương, kết quả là YES.
- \(1 = 1^2\) nên là số chính phương, kết quả là YES.
Subtasks
Không có subtask chính thức. Yêu cầu thiết kế bộ test:
- 30% số test có dữ liệu nhỏ (\(n \le 100\)).
- 30% số test có dữ liệu trung bình (\(n \le 10^6\)).
- 40% số test không ràng buộc bổ sung (\(n \le 10^{12}\)).
Comments