# 202. Happy Number

• Time: $O(\log n)$
• Space: $O(1)$
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Solution { public: bool isHappy(int n) { int slow = squaredSum(n); int fast = squaredSum(squaredSum(n)); while (slow != fast) { slow = squaredSum(slow); fast = squaredSum(squaredSum(fast)); } return slow == 1; } private: int squaredSum(int n) { int sum = 0; while (n) { sum += pow(n % 10, 2); n /= 10; } return sum; }; }; 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 class Solution { public boolean isHappy(int n) { int slow = squaredSum(n); int fast = squaredSum(squaredSum(n)); while (slow != fast) { slow = squaredSum(slow); fast = squaredSum(squaredSum(fast)); } return slow == 1; } private int squaredSum(int n) { int sum = 0; while (n > 0) { sum += Math.pow(n % 10, 2); n /= 10; } return sum; } } 
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 class Solution: def isHappy(self, n: int) -> bool: def squaredSum(n: int) -> bool: summ = 0 while n: summ += pow(n % 10, 2) n //= 10 return summ slow = squaredSum(n) fast = squaredSum(squaredSum(n)) while slow != fast: slow = squaredSum(slow) fast = squaredSum(squaredSum(fast)) return slow == 1