Home »
Java Programs »
Java Basic Programs
Java program to check whether given number is Kaprekar number or not
Here, we are going to implementing a java program that will read an integer number and check whether it is Kaprekar number or not.
Submitted by IncludeHelp, on January 02, 2018
Problem statement
Given an integer number and we have to check whether it is a Kaprekar number or not using Java program.
What is Kaprekar Number?
A Kaprekar number is a number in which the sum of digits in its square is the number itself.
Example
9*2= 81 (Square of 9)
8+1 = 9(Sum of digits in square)
Java program to check whether given number is Kaprekar number or not
public class KaprekarNumbers
{
public static void main(String[] args)
{
int ctr = 0;
int base = (args.length > 0) ? Integer.parseInt(args[0]) : 10;
for(long n = 1; n <= 1000; n++)
{
String St = Long.toString(n * n, base);
for(int j = 0; j < St.length() / 2 + 1; j++)
{
String[] S = split_num(St, j);
long N1 = Long.parseLong(S[0], base);
long N2 = Long.parseLong(S[1], base);
if(N2 == 0) break;
if(N1 + N2 == n)
{
System.out.println(Long.toString(n, base) +"\t" + St + "\t " + S[0] + " + " + S[1]);
ctr++;
break;
}
}
}
System.out.println(ctr + " Kaprekar numbers.");
}
private static String[] split_num(String str, int idx)
{
String[] A1 = new String[2];
A1[0] = str.substring(0, idx);
if(A1[0].equals("")) A1[0] = "0";
A1[1] = str.substring(idx);
return A1;
}
}
Output
First run:
Kaprekar number between 1 to 1000.
1 1 0 + 1
9 81 8 + 1
45 2025 20 + 25
55 3025 30 + 25
99 9801 98 + 01
297 88209 88 + 209
703 494209 494 + 209
999 998001 998 + 001
8 Kaprekar numbers.
Second run:
Kaprekar number between 1 to 100.
1 1 0 + 1
9 81 8 + 1
45 2025 20 + 25
55 3025 30 + 25
99 9801 98 + 01
5 Kaprekar numbers.
Java Basic Programs »