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

#3214

그뤠잇 넘버 1s 128MB

문제

자연수 n에 대해서, f(n)을 n의 모든 자리수의 숫자들의 제곱의 합이라고 정의하자.

 

예를 들어 n=19이면, f(19) = 12 + 92 = 82이다.

 

이 f를 계속 적용시켜 나가다 보면, 어떤 수들은 결국에 1이 된다. 이런 수들을 그뤠잇 넘버라고 한다. 예컨대, 19는 그뤠잇 넘버이다. 다음을 보면 그 이유를 알 수 있다.

 

f(19) = 12 + 92 = 82

f(82) = 82 + 22 = 68

f(68) = 62 + 82 = 100

f(100) = 12 + 02 + 02 = 1

 

모든 자연수들이 그뤠잇 넘버이진 않다. 실은, 수학자들이 이미 자연수 n가 그뤠잇 넘버가 아니면, 어떤 주기를 가지고 순환한다는 것을 증명해 놨다. 예를 들면 다음과 같다.

 

4 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4 -> …

 

n이 주어졌을 때, n이 그뤠잇 넘버인지 아닌지 알아내는 프로그램을 작성하라.​ 


입력

첫 줄에 T가 주어진다. T는 테스트케이스의 개수이다. (1 ≤ T ≤ 10)

다음 줄부터 T줄까지, 각 테스트 케이스 별로 자연수 n이 주어진다. n은 1이상 1,000,000,000이하의 자연수이다.


출력

T줄에 걸쳐, n이 그뤠잇 넘버이면 GREAT, 그뤠잇 넘버가 아니면 STUPID를 출력하라.

예제

2

19
5
GREAT

STUPID

출처

ACM-ICPC 2017 Daejeon, Problem D: Happy Number, moderate by ohjtgood
로그인해야 코드를 작성할 수 있어요.