/*
 * @lc app=leetcode.cn id=202 lang=javascript
 *
 * [202] 快乐数
 */

// @lc code=start
/**
 * @param {number} n
 * @return {boolean}
 */
var isHappy = function (n) {
  const hash = new Map();

  const getSum = (num) => {
    let sum = 0;
    while (num) {
      sum += (num % 10) ** 2;
      num = Math.floor(num / 10);
    }
    return sum;
  }

  while (n !== 1) {
    if (hash.has(n)) { return false; }
    hash.set(n, n)

    n = getSum(n)
  }
  return true;
};
// @lc code=end