Tuesday, April 30, 2013

Program to check kaprekar Number(By using string)


/**
 * This program checks Kaprekar Number with the help of string
 * @author: Nitendra Kumar
 **/

import java.io.*;
public class Kaprekar1
{
   public static void main() throws IOException
{
 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
 System.out.print("Enter a Number : ");
 int num=Integer.parseInt(br.readLine()); //Inputting the number
 int sq=num*num; //finding the square of the number
 String s=Integer.toString(sq); //converting the square into a String

 if(sq<=9)
 s="0"+s;

 int l=s.length(); //finding the length (i.e. no. of digits in the square).
 int mid=l/2; //finding the middle point
 String left=s.substring(0,mid); //extracting the left digits from the square
 String right=s.substring(mid); //extracting the right digits from the square
 int x=Integer.parseInt(left); //converting the left String into Integer
 int y=Integer.parseInt(right); //converting the right String into Integer

 if(x+y == num) //comparing sum with number
 System.out.println(num+" is a Kaprekar Number");
 else 
 System.out.println(num+" is Not a Kaprekar Number");
}
}

/*------------------------Program Developed by: Nitendra Kumar------------------------*/
//For more details visit http://javawithnitendra.blogspot.in

Program to check Kaprekar Number


/**
 *This program checks that whether a number is Kaprekar Number or not.
 * @author : Nitendra Kumar
 */

import java.util.Scanner;
public class Kaprekar
{
   public static int num;
   Scanner in=new Scanner(System.in);
       
    public void fngetnum()
    {
        System.out.println("Enter a number");
        num=in.nextInt();
    }

    public int fnsumdigits(int num)
    {
     int snum=num*num;
     int len=String.valueOf(snum).length();
     int mid=len/2;
     int digleft=mid;
     int digright=len-mid;
     
     int lpart=snum/(int)Math.pow(10,digright);
     int rpart=snum%(int)Math.pow(10,digright);
     int sum=lpart+rpart;
     if(sum==num)
      return 1;
     else
      return 0;     
    }
    
    void fncheckkarpekar()
    {
        int a=fnsumdigits(num);
        if(a==1)
          System.out.println("Number is Kaprekar Number");
        else
          System.out.println("Number is not Kaprekar Number");
        }
        
    public static void main()
    {
        Kaprekar ob=new Kaprekar();
        ob.fngetnum();
        ob.fncheckkarpekar();
    }
}

/*---------------Program developed by: Nitendra Kumar---------------*/
//For more details visit http://javawithnitendra.blogspot.in

Monday, April 29, 2013

Program to check Happy Number


/*Happy Number: A happy number is a number in which the eventual sum of the square
 of the digits of the number is equal to 1.
Example: 23,28
@author : Nitendra Kumar
 */


import java.util.Scanner;

public class Happy
{
  public static int n;
   Happy()  //constructor
   {
       n=0;
    }
    
  public static void main()
  {
      Scanner in=new Scanner(System.in);
      Happy ob=new Happy();
      System.out.println("Enetr a number");
      n=in.nextInt();
      ob.getnum(n);  
      ob.ishappy();
   }

public void getnum(int nn)  
{
 n=nn;
}

public void ishappy() //check if number is Happy Number
{
    int a=n;
    while(a>9)
    {
        a=sum_sq_digits(a);
    }
    if(a==1)
      System.out.println(n+" is a Happy Number");
    else
      System.out.println(n+" is not a Happy Number");
}

public int sum_sq_digits(int x) //recursive function that returns
{                               //sum of square of digits of number x
     if(x==0)
       return 0;
     else   
     {
         int d=x%10;
       return (d*d+sum_sq_digits(x/10));
    }  
 }  

   
/*------------------------Program developed by: Nitendra Kumar------------------------*/      

Program to check Smith Number

/*This program checks that whether a given number is an Smith Number or not
@auther : Nitendra Kumar
*/

import java.util.Scanner;

public class clSmithNumber
{
 public static void main()
 {
     Scanner in=new Scanner(System.in);
     clSmithNumber ob=new clSmithNumber();
     int num; 
     System.out.println("Enter a number");
     num=in.nextInt();
     
     boolean bool=ob.fnCheckPrime(num);
     if(bool==false)
     {
        System.out.println("Number is composite");
        int sumdigits=ob.fnSumDigits(num);
        System.out.println("Sum of digits is:"+sumdigits);
     
        int sumfact=ob.fnSumFact(num);
        System.out.println("Sum of prime facors is:"+sumfact);
     
        if(sumdigits==sumfact)
            System.out.println("Number is Smith Number");
        else
            System.out.println("Number is not Smith Number");
     
     }
     else
        System.out.println("Number is prime so it is not a Smith Number");
    }
    
    
    public boolean fnCheckPrime(int num) //checks whether the number is prime or not
    {
        int flag=0;
        for(int i=2;i<num;i++)
        {
            if(num%i==0)
            {
                flag=1;
                break;
            }
        }
        if(flag==0)
         return true;
         else
         return false;
    }
       
    
    public int fnSumDigits(int num) //find out sum of digits of number
    {
        int n1,r1,r=0,sum=0;
        do
        {
            n1=num/10;
            r1=num%10;
            r+=r1;
            num=n1;
        }
        while(n1>=10);
        sum=r+n1;
        return sum;
    }
    
      
    public int fnSumFact(int num) //find out sum of prime factors of number
    {
     int num1,n,sum1=0,sum2=0,sum=0,r=0;
     System.out.print("Prime factors are:");
     for(int i=2;i<=num;i++)
     {
         if(num%i==0)
         {
             System.out.print(i +", ");
             num=num/i;
             
             if(i<=10)
             sum1+=i;
             
             i--;
             if(i>10)
             {
                 i++;
                 num1=i;
                 do
                 {
                      n=num1/10;
                      r+=num1%10;
                      num1=n;
                     
                     if(num1<10)
                     {
                          System.out.println();
                          sum2=r+num1;
                     break;
                    }            
                }
                while(num1>10);           
        }
    }
}
sum=sum1+sum2;
return sum;
}
}

/*------------------Program developed by Nitendra Kumar-----------------*/