페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#2854

happy prime 1s 16MB

문제

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
로그인해야 코드를 작성할 수 있어요.