File tree Expand file tree Collapse file tree 2 files changed +85
-0
lines changed
main/java/com/thealgorithms/maths
test/java/com/thealgorithms/maths Expand file tree Collapse file tree 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