#SH2026SG12. 快乐数

快乐数

快乐数

问题描述

小胡在学习快乐数。快乐数的定义如下:

  • 对于一个正整数,每次将其替换为它的各位数字的平方和。
  • 重复这个过程,直到这个数变为1,或者进入无限循环但始终变不到1。
  • 如果最终能变为1,那么这个数就是快乐数。

现在,小胡想知道一个数是否是快乐数。请你帮助他判断。

输入格式

输入一个正整数n。

输出格式

如果n是快乐数,输出"Yes",否则输出"No"。

样例输入 1

19

样例输出 1

Yes

样例输入 2

2

样例输出 2

No

样例解释

样例 1 解释 19 → 1² + 9² = 82 → 8² + 2² = 68 → 6² + 8² = 100 → 1² + 0² + 0² = 1,所以19是快乐数。

样例 2 解释 2 → 4 → 16 → 37 → 58 → 89 → 145 → 42 → 20 → 4 → ... 进入循环,所以2不是快乐数。

提示

  • 从进入过程开始,每次运算结果的大小不超过500
  • 用桶记录一个数是否出现过,如果出现过那么他一定进入了循环

数据范围与约定

  • 1 ≤ n ≤ 10^6