Saturday 13 February 2016

Java: Kaprekar Number

Problem: Kaprekar Number

Consider an n-digit number k . Square it and add the right n digits to the left n or n-1 digits. If the resultant sum is k, then k is called a Kaprekar number.
For example, 9 is a Kaprekar number since
9^2 = 81, 8+1=9
and 297 is a Kaprekar number since
297^2=88 209, 88+209=297
The first few are 1, 9, 45, 55, 99, 297, 703, ...

Solve:
We consider a number in our case : 19044
Lets see the following Code:
// ADLabs


public class Kaprekar {

 public static void main(String[] args) {
      
  Kaprekar kaprekar = new Kaprekar();
  
  int inputNumber=19044; // input Number
  int inputNumberLength = kaprekar.length_of_num(inputNumber);
  int squareNumber = inputNumber*inputNumber;
  
  //int squareNumberLenght = kaprekar.length_of_num(squareNumber);
  int operator =(int) Math.pow(10, inputNumberLength);
  int rightDigits = squareNumber%(operator);
  int leftDigits = squareNumber/(operator);
  int sumDigits = rightDigits+leftDigits;
  if(inputNumber==sumDigits){
   System.out.println(inputNumber +" is Kaprekar Number");
  }else{
   System.out.println("Not a kaprekar"); 
  }
  
 }
  
 
 public int length_of_num(int num) {
  
  int length=0;
  while(num>0){
   
   num /= 10;
   length++;
  }
  return length;
 }

}




Console: Not a kaprekar

-@D