### Find the Prime factors of a number

Write a program in JAVA to find the Prime factors of a number.

Prime factors of a number are those factors which are prime in nature and by which the number itself is completely divisible (1 will not be taken as prime number).

Few such numbers are:
Prime Factors of 24 are 2, 2, 2, 3
Prime Factors of 6 are 2, 3

Solution:

/*
[Finding the Prime Factors of a number - Method 1]
[www.javaforschool.com]
*/

import java.io.*;
class PrimeFactors
{
public static void main() throws IOException
{
int n;
System.out.print("Enter a Number : ");
System.out.print("The Prime Factors of "+n+" are : ");
int i=2;
while(n>1)
{
if(n%i == 0)
{
System.out.print(i+" ");
n=n/i;
}
else
i++;
}
}
}

Output:

Enter a Number : 378
The Prime Factors of 378 are: 2  3  3  3  7

Explanation:

In this program we have implemented the very traditional method of finding the prime factors of a number, which we all used in junior classes.

When we were told to find the HCF of 2 numbers, we first used to find the Prime Factors of both the numbers separately and then used to take the common factors and multiply them for finding the HCF – Remember?

And we used to first start dividing that number by 2, then if it was divisible, we would again divide it by 2 and this would go on till it is being divided by 2, then we moved on to check its divisibility by 3, then with 5, 7 etc. We used to divide, until we reached 1, after which we used to stop.

2 | 24
2 | 12
2 | 6
3 | 3  _
| 1

Remember, the above method? And the Prime Factors using the above method would come as 2, 2, 2, 3 for 24.

This is the very logic being used in the above program.

1. We start dividing the number by 2, hence, the value of ‘i’ begins with 2.

2. If it is divisible, then the value of ‘i’ is printed, and the next number becomes (n/i) , like we used to have in our junior arithmetic.

3. If it is not divisible by 2, then the value of ‘i’ is incrementing.

4. And this checking goes on till the number is greater than 1, because if it becomes 1, we need to stop this process of dividing.