| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 771 | 379 | 335 | 49.925% |
$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번