File tree 2 files changed +85
-0
lines changed
main/java/com/thealgorithms/maths
test/java/com/thealgorithms/maths
2 files changed +85
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com .thealgorithms .maths ;
2
+
3
+ public class KaprekarNumbers {
4
+
5
+ /* This program demonstrates if a given number is Kaprekar Number or not.
6
+ Kaprekar Number: A Kaprekar number is an n-digit number which its square can be split into two parts where the right part has n
7
+ digits and sum of these parts is equal to the original number. */
8
+
9
+ // Checks whether a given number is Kaprekar Number or not
10
+
11
+ public static boolean isKaprekarNumber (long number ) {
12
+ long numberSquared = number * number ;
13
+ if (Long .toString (number ).length () == Long .toString (numberSquared ).length ()){
14
+ return (number == numberSquared );
15
+ }
16
+ else {
17
+ long leftDigits1 = 0 , leftDigits2 = 0 ;
18
+ if (Long .toString (numberSquared ).contains ("0" )){
19
+ leftDigits1 = Long .parseLong (Long .toString (numberSquared ).substring (0 , Long .toString (numberSquared ).indexOf ("0" )));
20
+ }
21
+ leftDigits2 = Long .parseLong (Long .toString (numberSquared ).substring (0 , (Long .toString (numberSquared ).length () - Long .toString (number ).length ())));
22
+ long rightDigits = Long .parseLong (Long .toString (numberSquared ).substring (Long .toString (numberSquared ).length () - Long .toString (number ).length ()));
23
+ return (number == (leftDigits1 + rightDigits )) || (number == (leftDigits2 + rightDigits ));
24
+ }
25
+ }
26
+
27
+ }
Original file line number Diff line number Diff line change
1
+ package com .thealgorithms .maths ;
2
+
3
+ import org .junit .jupiter .api .Test ;
4
+
5
+ import static org .junit .jupiter .api .Assertions .*;
6
+
7
+ public class KaprekarNumbersTest {
8
+
9
+ @ Test
10
+ void testFor1 ()
11
+ {
12
+ assertTrue (KaprekarNumbers .isKaprekarNumber (1 ));
13
+ }
14
+
15
+ @ Test
16
+ void testFor45 ()
17
+ {
18
+ assertTrue (KaprekarNumbers .isKaprekarNumber (45 ));
19
+ }
20
+
21
+ @ Test
22
+ void testFor297 ()
23
+ {
24
+ assertTrue (KaprekarNumbers .isKaprekarNumber (297 ));
25
+ }
26
+
27
+ @ Test
28
+ void testFor2223 ()
29
+ {
30
+ assertTrue (KaprekarNumbers .isKaprekarNumber (2223 ));
31
+ }
32
+
33
+ @ Test
34
+ void testFor857143 ()
35
+ {
36
+ assertTrue (KaprekarNumbers .isKaprekarNumber (857143 ));
37
+ }
38
+
39
+
40
+ @ Test
41
+ void testFor3 ()
42
+ {
43
+ assertFalse (KaprekarNumbers .isKaprekarNumber (3 ));
44
+ }
45
+
46
+ @ Test
47
+ void testFor26 ()
48
+ {
49
+ assertFalse (KaprekarNumbers .isKaprekarNumber (26 ));
50
+ }
51
+
52
+ @ Test
53
+ void testFor98 ()
54
+ {
55
+ assertFalse (KaprekarNumbers .isKaprekarNumber (98 ));
56
+ }
57
+
58
+ }
You can’t perform that action at this time.
0 commit comments