bool isHappy(int n) { int slow = n, fast = n; do { slow = squareDigits(slow); fast = squareDigits(squareDigits(fast)); } while (slow != fast); return fast == 1; }
int oneOr89(int n, int cache[]) { return cache[squareDigits(n) - 1]; }
int oneOr89(int n) { while (n != 1 && n != 89) { n = squareDigits(n); } return n; }