문제
prime 은 소수(1과 자기 자신만을 약수로 갖는 수)이다. happy 수는 어떤 수에서 각 자리의 수를 제곱한 합을 구하는 작업을 반복하여 1이 나오는 수를 말한다. 예를 들면 130 -> 12 + 32 = 10, 10 -> 12 + 02 = 1 과 같은 수이다.
그런데 happy prime 은 위 두 조건을 모두 만족하는 수를 말한다.
이러한 happy prime 중에서 가장 작은 수는 7이라고 한다.
7 -> 72 = 49
49 -> 42 + 92 = 97
97 -> 92 + 72 = 130
130 -> 12 + 32 = 10
10 -> 12 + 02 = 1
1은 소수가 아니므로 happy prime 이 아니다.
어떤 수가 주어질 때 이 수가 happy prime 인 판단하는 프로그램을 작성하시오.
입력
첫 행에 테스트케이스의 수 T (1 <= T <= 1000)가 입력된다.
이어 T개의 행에 각각의 데이터가 입력된다.
각 데이터의 첫 수는 테스트케이스 번호이다. 두 번째 수는 판단할 수 이다. 판단할 수의 범위는 10,000이하의 자연수이다.
출력
각 테스트케이스에 대하여 테스트케이스번호, 판단할 수, 판단결과를 행으로 구분하여 출력한다.
판단결과는 happy prime인 경우 "YES"를 그렇지 않은 경우 "NO"를 출력한다.
예제
4
1 1
2 7
3 383
4 1000
1 1 NO
2 7 YES
3 383 YES
4 1000 NO
출처
Greater New York 2014