C Program to Find Prime factors of a given number


In this tutorial you will learn writing program to print all possible prime factor of a given number in C.


Before moving on writing program lets know what is prime factor?

What is Prime Factor?

It is a combination of two words “Prime” and “Factor”.

Prime means a number which can be only divisible by 1 and number itself.

For Example: 1, 2, 3, 5, etc.

And Factor is a part of a number which multiplication gives you the original number.

For example:

  2*3 = 6

Here 2 and 3 are the prime factor of 6.

Prime factor is basically all factor of a number that should be prime number.

How our program will behave?

The prime factor calculation program will take a number as a input and in result it will print all outputs with prime factors.

For example if you want to calculate the prime factor of a number 16 then you should give 16 as an input.

And After calculation program should return 2, 2, 2, 2 as an output.

Below is a program to find all Prime Factor of a given number in C

void main(){
int i=0,j,n,temp=0;
	printf("please enter a number: ");
	printf("prime factors of a given number \n");
	 while(n % 2 == 0) {
      printf("%d, ", 2);
      n = n/2;
   for(i = 3; i <= sqrt(n); i=i+2){
      while(n % i == 0) {
         printf("%d, ", i);
         n = n/i;
   if(n > 2) {
      printf("%d, ", n);


find prime factor program in c

Explanation of the above program

  • Above program is little bit logical but not hard to understand.
  • We have 4 variables i, j, n, temp. i and temp is initialized with 0.
  • First while loop will print 2 as a prime factor for each time when a number can be divide by 2.
  • Now the next for loop will check if  any odd number can divide a number.
  • And last if statement is to print those number as a prime factor which square root is less than 3.

I hope it has helped you to understand prime factor program using C Language.