Pages

July 27, 2012

Prime Factor in java


Calculate Prime Factor in java

The program demonstrate how  to find Least common mutiple and Highest common factor in java.

public class

PrimeFactor{



    /**
     * raviatgmail.com
     *
     * 
     */
    private Scanner scanner_ins = null;                                 // To scan user inputed value
   
    private int totalNumber = 0;                                         //     totalNumber by user
    private int minimumValue = 0;                                       //     Minimum value inside the user inputed array
    private int lcm = 1;
    private int hcf = 1;
    private int [] value_array = null;                                  // User entered value
    private int [] denominators = {1,9,8,7,6,5,4,3,2};
   
   
   
    /**
     * Constructor
     */
    PrimeFactor(){ 
        scanner_ins = new Scanner(System.in);
    }
   
   
    /**
     * getUserInputs()
     *
     * To Get input from user
     */
    private boolean getUserInputs() {
        boolean isZero = false;
       
        System.out.println(" Enter the total number of elements (Say n) : ");
        totalNumber = scanner_ins.nextInt();                                   //scan the user inputs into array
        value_array = new int[totalNumber];                                  // initialized the size of array
       
        for(int i =0 ;i < totalNumber; i++)                                   //This for loop used to get the elements from user
        {
            System.out.print(" Enter the "+(i+1)+"th elements : ");
            value_array[i]=scanner_ins.nextInt();
           
            if(value_array[i] == 0)
                isZero = true;
        }
        return isZero;
    }
   
   
    /**
     * findMinimumValue()
     *
     * To find the minimum value from user inputs
     */
    private void findMinimumValue() {

        int temp =0;                                                           // A temporary variable
        temp = value_array[0];                                              // assingning first value of array to temp
       
        for(int i=1; i value_array[i]){
                temp = value_array[i];                                       // changing the temp value to minimum
            }
           
        }
        minimumValue = temp;
    }
   
   
   

    /**
     * findCommonMultiples()
     *
     * To find the H C F
     */
    private void findCommomMultiples() {
        denominators[0] = minimumValue;
        int reminder =0;   // reminder
        boolean isCommonMultiper = false;  // is a common multipler
        boolean isComputed = false;
       
        for(int denominator : denominators)
        {
                if(isComputed == false){
                   
                    for(int value : value_array)
                    {
                        reminder = value % denominator;
                        if(reminder == 0)
                        {
                            isCommonMultiper = true;
                            continue;
                        }
                        else
                        {
                            isCommonMultiper = false;
                            break;
                        }
                    }
                   
                    if(isCommonMultiper == true)
                    {
                        lcm = lcm * denominator;
                       
                        for(int i = 0; i < totalNumber ; i++)
                        {
                            if(value_array[i] !=0){
                                value_array[i] = value_array[i] / denominator;
                           
                                if(value_array[i] == 1)
                                    isComputed = true;
                            }
           
                        }
                    }

                }  //end of if(is computed)
        }
        hcf = lcm;
    }
   
   

    /**
     * findLCM()
     *
     * To calculate LCM from HCF
     */
    private void findLCM() {

       
        for(int i=0; i < value_array.length; i++)
        {
            lcm = lcm * value_array[i];
        }
       
    }
   
   
   
   
    public static void main(String[] args) {
        // main class where program starts
       
       
        PrimeFactor primeFactor = new PrimeFactor();                  //instance (ins) of Lcm class
        boolean isZeroExist = primeFactor.getUserInputs();          //for getting user input (total elements, elements into array)
       
        if(isZeroExist == false){
            long startTime = System.currentTimeMillis();
            primeFactor.findMinimumValue();                          //To find minimum value user inputed
            primeFactor.findCommomMultiples();                         //To calculated H C F
            primeFactor.findLCM();
            primeFactor.showDetails((System.currentTimeMillis() - startTime));
        }
        else{
            System.out.println("\n\t\t PRIME FACTORS \n ");
           
            System.out.println("\t  H C F is Zero");
            System.out.println("\t  L C M is Zero");
            }
       
    }


    /**
     * showDetails()
     *
     * To Display the output to user
     */

    private void showDetails(long timeTaken) {
       
        System.out.println("\n\t\t PRIME FACTORS \n ");

       
        System.out.print("\n  User inputs   [ ");
        for(int i = 0 ; i < totalNumber ; i++)   //This for loop used to user inputed values
        {
            System.out.print(" " + (value_array[i] * hcf));
        }
        System.out.println(" ]");
       
       
        System.out.print("\n  After dividing by common multiples   [ ");
        for(int i = 0 ; i < totalNumber ; i++)   //This for loop used to view value array after iteration
        {
            System.out.print(" " + value_array[i]);
        }
        System.out.println(" ]");
       
       
        System.out.println("  H C F is "+hcf);
        System.out.println("  L C M is "+lcm);
       
        System.out.println("  Computation Time : "+timeTaken+" ms");
       
    }
}


prime factor

Description : computer science practical question, java interview aptitude questions. The program will find least common multiple and highest common factor.



No comments:

Post a Comment

Your feedback may help others !!!