Untitled
19 → 1² + 9² = 1 + 81 = 82 82 → 8² + 2² = 64 + 4 = 68 68 → 6² + 8² = 36 + 64 = 100 100 → 1² + 0² + 0² = 1 (Happy Number) 2 → 2² = 4 4 → 4² = 16 16 → 1² + 6² = 1 + 36 = 37 37 → 3² + 7² = 9 + 49 = 58 58 → 5² + 8² = 25 + 64 = 89 89 → 8² + 9² = 64 + 81 = 145 145 → 1² + 4² + 5² = 1 + 16 + 25 = 42 42 → 4² + 2² = 16 + 4 = 20 20 → 2² + 0² = 4 4 → 16 (Cycle Detected) public class HappyNumber { public static boolean isHappy(int n) { int slow = n, fast = n; do { slow = sumOfSquares(slow); // Move one step fast = sumOfSquares(sumOfSquares(fast)); // Move two steps } while (slow != fast); return slow == 1; } private static int sumOfSquares(int num) { int sum = 0; while (num > 0) { int digit = num % 10; sum += digit * digit; num /= 10; } return sum; } public static void main(String[] args) { System.out.println(isHappy(19)); // Output: true System.out.println(isHappy(2)); // Output: false } }
Leave a Comment