Skip to content

Commit a0a3922

Browse files
Add kaprekarNumberInRange (TheAlgorithms#2894)
Co-authored-by: Andrii Siriak <[email protected]>
1 parent 97dfbfd commit a0a3922

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/main/java/com/thealgorithms/maths/KaprekarNumbers.java

+16-3
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
11
package com.thealgorithms.maths;
2+
import java.util.*;
23

34
public class KaprekarNumbers {
45

56
/* This program demonstrates if a given number is Kaprekar Number or not.
67
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
78
digits and sum of these parts is equal to the original number. */
89

9-
// Checks whether a given number is Kaprekar Number or not
10+
// Provides a list of kaprekarNumber in a range
11+
public static ArrayList<Long> kaprekarNumberInRange(long start, long end) throws Exception {
12+
long n = end-start;
13+
if (n <0) throw new Exception("Invalid range");
14+
ArrayList<Long> list = new ArrayList<>();
15+
16+
for (long i = start; i <= end; i++) {
17+
if (isKaprekarNumber(i)) list.add(i);
18+
}
1019

11-
public static boolean isKaprekarNumber(long number) {
20+
return list;
21+
}
22+
23+
// Checks whether a given number is Kaprekar Number or not
24+
public static boolean isKaprekarNumber(long number) {
1225
long numberSquared = number * number;
1326
if(Long.toString(number).length() == Long.toString(numberSquared).length()){
1427
return (number == numberSquared);
1528
}
1629
else{
17-
long leftDigits1 = 0, leftDigits2 = 0;
30+
long leftDigits1 = 0, leftDigits2;
1831
if(Long.toString(numberSquared).contains("0")){
1932
leftDigits1 = Long.parseLong(Long.toString(numberSquared).substring(0, Long.toString(numberSquared).indexOf("0")));
2033
}

0 commit comments

Comments
 (0)