만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

행복한 소수

면접 대비

시간 제한1초메모리 제한256 MB

요약
주어진 수가 소수이면서 자리 숫자 제곱합 반복으로 1에 도달하는지 판정해 케이스 번호와 함께 출력합니다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 해시맵, 수학
정답자
아직 제출이 없습니다

문제

어떤 수의 각 자릿수를 제곱해 더하는 과정을 반복했을 때 1이 되면 그 수를 행복한 수라고 한다. 예를 들어 7은 49, 97, 130, 10, 1 순서로 바뀌므로 행복한 수다. 1에 닿지 못하는 수는 같은 값을 되풀이하는 순환에 빠진다. 행복한 수이면서 소수인 수를 행복한 소수라고 한다.

주어진 MM이 행복한 소수인지 판별하라.

입력

첫째 줄에 테스트 케이스의 수 PP가 주어진다. (1≤P≤10001 \le P \le 1000)

다음 PP개의 줄에 각각 테스트 케이스 번호와 정수 MM이 공백 하나로 구분되어 주어진다. (1≤M≤100001 \le M \le 10000) 테스트 케이스 번호는 입력에 적힌 값을 그대로 쓰며, 1부터 차례로 커진다는 보장은 없다.

출력

각 테스트 케이스마다 한 줄에 입력으로 받은 테스트 케이스 번호, MM, 그리고 MM이 행복한 소수이면 YES, 아니면 NO를 공백 하나로 구분해 출력한다.

예제4

  1. 예제 1

    입력
    4
    1 1
    2 7
    3 383
    4 1000
    
    예상 출력
    1 1 NO
    2 7 YES
    3 383 YES
    4 1000 NO
    
  2. 예제 2

    입력
    1
    1 2
    
    예상 출력
    1 2 NO
    
  3. 예제 3

    입력
    1
    2 13
    
    예상 출력
    2 13 YES
    
  4. 예제 4

    입력
    2
    1 1
    2 10000
    
    예상 출력
    1 1 NO
    2 10000 NO