- Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathHappyNumbersSeq.java
39 lines (33 loc) · 993 Bytes
/
HappyNumbersSeq.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
packagecom.thealgorithms.others;
importjava.util.Arrays;
importjava.util.HashSet;
importjava.util.Scanner;
importjava.util.Set;
publicfinalclassHappyNumbersSeq {
privateHappyNumbersSeq() {
}
privatestaticfinalSet<Integer> CYCLE_NUMS = newHashSet<>(Arrays.asList(4, 16, 20, 37, 58, 145));
publicstaticvoidmain(String[] args) {
Scannerin = newScanner(System.in);
System.out.print("Enter number: ");
intn = in.nextInt();
while (n != 1 && !isSad(n)) {
System.out.print(n + " ");
n = sumSquares(n);
}
Stringres = n == 1 ? "1 Happy number" : "Sad number";
System.out.println(res);
in.close();
}
privatestaticintsumSquares(intn) {
ints = 0;
for (; n > 0; n /= 10) {
intr = n % 10;
s += r * r;
}
returns;
}
privatestaticbooleanisSad(intn) {
returnCYCLE_NUMS.contains(n);
}
}