# Happy Number LeetCode Solution | Easy Approach Share:

Happy Number Write an algorithm to determine if a number `n` is happy.

happy number is a number defined by the following process:

• Starting with any positive integer, replace the number by the sum of the squares of its digits.
• Repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1.
• Those numbers for which this process ends in 1 are happy.

Return `true` if `n` is a happy number, and `false` if not.

Example 1:

```Input: n = 19
Output: true
Explanation:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
```

Example 2:

```Input: n = 2
Output: false
```

Constraints:

• `1 <= n <= 231 - 1`

Time: O(log n)
Space: O(n)

### C++

``````class Solution {
public:
bool isHappy(int n) {
auto squaredSum = [&](int n) {
int sum = 0;
while (n) {
sum += pow(n % 10, 2);
n /= 10;
}
return sum;
};

int slow = squaredSum(n);
int fast = squaredSum(squaredSum(n));

while (slow != fast) {
slow = squaredSum(slow);
fast = squaredSum(squaredSum(fast));
}

return slow == 1;
}
};
``````

### Java

`````` 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;
}
}

``````

### Python

``````  class Solution:
def isHappy(self, n: int) -> bool:
def squaredSum(n: int) -> bool:
sum = 0

while n:
sum += pow(n % 10, 2)
n //= 10

return sum

slow = squaredSum(n)
fast = squaredSum(squaredSum(n))

while slow != fast:
slow = squaredSum(slow)
fast = squaredSum(squaredSum(fast))

return slow == 1

``````

#### Watch Tutorial

Checkout more Solutions here