public static void Main()
Console.WriteLine(IsHappyNumber(1));
Console.WriteLine(IsHappyNumber(7));
Console.WriteLine(IsHappyNumber(10));
Console.WriteLine(IsHappyNumber(97));
Console.WriteLine(IsHappyNumber(100));
Console.WriteLine(IsHappyNumber(130));
Console.WriteLine(!IsHappyNumber(2));
Console.WriteLine(!IsHappyNumber(3));
Console.WriteLine(!IsHappyNumber(4));
Console.WriteLine(!IsHappyNumber(5));
Console.WriteLine(!IsHappyNumber(6));
Console.WriteLine(!IsHappyNumber(8));
Console.WriteLine(!IsHappyNumber(9));
public static bool IsHappyNumber(int number)
bool isNumberEqualsOne = number == 1;
bool isNumberASingleDigitHappyNumber = number == 7;
if (isNumberEqualsOne || isNumberASingleDigitHappyNumber)
bool isNumberASingleDigitSadNumber = number < 10 && number != 1 && number != 7;
if (isNumberASingleDigitSadNumber)
return IsHappyNumber(GetSumOfTheSquareOfDigits(number));
public static int GetSumOfTheSquareOfDigits(int number)
var individualDigits = number.ToString().Select(digit => Char.GetNumericValue(digit));
return (int)individualDigits.Select(digit => Math.Pow(digit, 2)).Sum();