Here is the problem link: Happy Number

**Problem Description:**

Write an algorithm to determine if a number `n`

is “happy”.

A 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, and 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 numbers.

Return True if `n`

is a happy number, and False if not.

**Example: **

**Input:** 19

**Output:** true

**Explanation:
**1

^{2}+ 9

^{2}= 82

8

^{2}+ 2

^{2}= 68

6

^{2}+ 8

^{2}= 100

1

^{2}+ 0

^{2}+ 0

^{2}= 1

Solution:

- You should not care about negative numbers. If the input is less than 1 the result is always false.
- I just try to find the ending of each number between 1-9. I saw each of the numbers except 1 & 7 create an infinitive loop. Where all of them produce 4 at certain iterations.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
public class Solution { public bool IsHappy(int n) { if (n < 1) return false; while (n != 1) { int s = 0; while (n != 0) { int r = n % 10; n /= 10; s += r * r; } if (s == 4) return false; n = s; } return true; } } |