Untitled
unknown
plain_text
10 months ago
1.2 kB
5
Indexable
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
}
}
Editor is loading...
Leave a Comment