Kiểm tra số chính phương


Submit solution

Points: 1 (partial)
Time limit: 0.0s
Memory limit: 500M

Author:
Problem type

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

There are no comments at the moment.