행복한 수

어떤 수의 십진수 각 자리 제곱합을 반복하다 1에 도달하는지 판정한다.

쉬움3시뮬레이션해시맵수학아직 제출이 없습니다시간 제한0.2초메모리 제한512 MB

문제

자연수 nn에 대해 함수 ff를 다음과 같이 정의한다.

f(n)f(n)nn을 십진법으로 적었을 때 각 자리 숫자를 제곱해서 모두 더한 값이다.

예를 들어 n=19n = 19이면 12+92=821^2 + 9^2 = 82이므로 f(19)=82f(19) = 82이다.

어떤 자연수는 ff를 반복해서 적용하면 언젠가 1이 된다. 이런 수를 행복한 수라고 한다. 19가 그렇다.

  • f(19)=12+92=82f(19) = 1^2 + 9^2 = 82
  • f(82)=82+22=68f(82) = 8^2 + 2^2 = 68
  • f(68)=62+82=100f(68) = 6^2 + 8^2 = 100
  • f(100)=12+02+02=1f(100) = 1^2 + 0^2 + 0^2 = 1

모든 자연수가 행복한 수는 아니다. 5로 직접 해 보면 5는 행복한 수가 아니라는 것을 알 수 있다. nn이 행복한 수가 아니면 ff를 반복 적용한 값은 반드시 다음 순환에 빠진다. 수학자가 이미 증명한 사실이다.

416375889145422044 \to 16 \to 37 \to 58 \to 89 \to 145 \to 42 \to 20 \to 4

주어진 자연수 nn이 행복한 수인지 판정하는 프로그램을 작성하시오.

입력

표준 입력으로 한 줄이 주어진다. 그 줄에는 정수 nn (1n1,000,000,0001 \le n \le 1{,}000{,}000{,}000)이 하나 들어 있다.

출력

표준 출력으로 정확히 한 줄을 출력한다. nn이 행복한 수이면 HAPPY를, 그렇지 않으면 UNHAPPY를 출력한다.