public static bool IsHappyNumber(this uint number) { uint sum = HappyNumber.SumDigitsPowTwo(number); return(IsHappyNumber(sum, new List <uint> { sum })); }
private static bool IsHappyNumber(uint number, List <uint> sums) { uint sum = HappyNumber.SumDigitsPowTwo(number); if (sum == 1) { return(true); } if (sums.Contains(sum)) { return(false); } sums.Add(sum); return(IsHappyNumber(sum, sums)); }