| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 753 | 368 | 326 | 49.544% |
$M=A^2$인 정수 $A$가 존재할 때 $M$을 제곱수라고 한다. 만약 제곱수 $M$을 뒤집어 얻은 수도 제곱수라면 $M$을 대칭제곱수라고 하자. 예를 들어 제곱수 121ドル$의 경우 뒤집은 수 121ドル$ 역시 제곱수이므로 대칭제곱수이지만, 49ドル$의 경우 뒤집은 수 94ドル$가 제곱수가 아니므로 대칭제곱수가 아니다. 단, 뒤집었을 때 가장 앞의 0ドル$을 무시한다는 점에 유의한다. 예를 들어 10100ドル$을 뒤집으면 00101ドル$이 되지만 가장 앞의 0ドル$을 무시하면 101ドル$이 된다.
정수가 주어질 때마다 대칭제곱수인지 판별하는 프로그램을 작성하시오.
첫 번째 줄에 테스트 케이스의 개수 $T$가 주어진다. $(1 \leq T \leq 10^5)$
두 번째 줄부터 $T$개의 줄에 걸쳐 정수 $N$이 주어진다. $(1 \leq N \leq 10^{18})$
각 테스트 케이스에 대해 $N$이 대칭제곱수라면 YES, 아니면 NO를 출력한다.
2 9 3
YES NO
School > 한국디지털미디어고등학교 > 제2회 디미고 프로그래밍 챌린지 C번