Home / Programs / C program to find prime factors of a number using for loop
Programming Example

C program to find prime factors of a number using for loop

👁 354 Views
💻 Practical Program
📘 Step by Step Learning
Write a C program to input a number from user and find Prime factors of the given number using loop. C program to list all prime factors of a given number. Logic to find prime factors of a number in C programming.

Information & Algorithm

Write a C program to input a number from user and find Prime factors of the given number using loop. C program to list all prime factors of a given number. Logic to find prime factors of a number in C programming.

If you don't know what is prime number please read for this tutorial. Prime Number & Prime Factors

Example

Input

Input any number: 10

Output

Prime factors of 10: 2, 5

What is Prime factor?

Factors of a number that are prime numbers are called as Prime factors of that number. For example: 2 and 5 are the prime factors of 10.

2 and 3 are the prime factors of 18.

Prime Factors of 18

Logic to check prime factors of a number

Step by step descriptive logic to find prime factors.

  1. Input a number from user. Store it in some variable say num.
  2. Run a loop from 2 to num/2, increment 1 in each iteration. The loop structure should look like for(i=2; i<=num/2; i++).

    You may think why loop from 2 to num/2? Because prime number starts from 2 and any factor of a number n is always less than n/2.

  3. Inside the loop, first check if i is a factor of num or not. If it is a factor then check it is prime or not.

    Print the value of i if it is prime and a factor of num.

Program Code

/**
 * C program to find all prime factors of a given number
 */

#include <stdio.h>

int main()
{
    int i, j, num, isPrime;

    /* Input a number from user */
    printf("Enter any number to print Prime factors: ");
    scanf("%d", &num);

    printf("All Prime Factors of %d are: \n", num);

    /* Find all Prime factors */
    for(i=2; i<=num; i++)
    {
        /* Check 'i' for factor of num */
        if(num%i==0)
        {
            /* Check 'i' for Prime */
            isPrime = 1;
            for(j=2; j<=i/2; j++)
            {
                if(i%j==0)
                {
                    isPrime = 0;
                    break;
                }
            }

            /* If 'i' is Prime number and factor of num */
            if(isPrime==1)
            {
                printf("%d, ", i);
            }
        }
    }

    return 0;
}

Output

Enter any number to print Prime factors: 15
All Prime Factors of 15 are: 
3, 5,

Explanation

No

How to learn from this program

First read the algorithm, then study the program code line by line. After that, compare the code with the output and finally go through the explanation. This approach helps learners understand both the logic and the implementation properly.