C Program to Find Prime Factors of A Numbers

  • Write a C program to print all prime factors of a number.
  • Wap in C to find all prime factors of given number.

Required Knowledge

A Prime Factor of a number is a factor that is also a prime number.
A Prime number is a natural number greater than 1 that is only divisible by either 1 or itself.
For Example: Prime factors of 15 are 3 and 5.


C program to print all prime factors of a number using for loop

#include <stdio.h>  
  
int main() {  
    int counter, N, i, isPrime;  
   
    printf("Enter a Number\n");  
    scanf("%d", &N);   
    
    printf("List of Prime Factors of %d\n", N);  
    /*Check for every number between 1 to N, 
   whether it divides N */
    for(counter = 2; counter <= N; counter++) {  
        /*  
         * If counter completely divides N, 
         * then it is a factor of N
         */  
        if(N%counter==0) {
            /* Check if counter is also a prime number */
            isPrime = 1;
            for(i = 2; i <=(counter/2); i++) {
                if(counter%i==0) {
                    isPrime=0;
                    break;
                }
            }
   
            if(isPrime==1)
                printf("%d ", counter);  
        }  
    }  
  
    return 0;  
}

Output
Enter a Number
15
List of Prime Factors of 15
3 5
Enter a Number
50
List of Prime Factors of 50
2 5
Write a C program to find product of digits of a number using while loop.
Wap in C to multiply the digits of a number.

Required Knowledge

To multiply digits of a number we have to remove one digit at a time, we can use '/' division and '%' modulus operator. Number%10 will give the least significant digit of the number, we will use it to get one digit of number at a time. To remove last least significant digit from number we will divide number by 10.

Product of digits of 2534 = 2 x 5 x 3 x 4 = 120

Algorithm to find product of digits of a number
  • Get least significant digit of number (number%10) and multiply it to the product variable.
  • Remove least significant digit form number (number = number/10).
  • Repeat above two steps, till number is not equal to zero.

C program to find sum of all even numbers between 1 to N using for loop

#include <stdio.h>
#include <conio.h>  
  
int main() {  
    int num, temp;  
    long productOfDigit = 1;  
  
    /* 
     * Take a number as input from user
     */  
    printf("Enter a Number\n");  
    scanf("%d", &num);  
    temp = num;
    
    while(num != 0){
        /* get the least significant digit(last digit) 
         of number and multiply it to productofDigit */
        productOfDigit *= num % 10;
        /* remove least significant digit(last digit)
         form number */
        num = num/10;
    } 
  
    printf("Product of digits of %d = %ld", temp, productOfDigit);  
  
    getch();
    return 0;  
}

Output
Enter a Number
2436
Product of digits of 2436 = 144
Enter a Number
2222
Product of digits of 2436 = 16

Related Topics
C program to print all prime numbers between 1 to N using for loop
C program to find sum of prime numbers between 1 to N
C program to check whether a number is prime or not
C program to find sum of digits of a number using recursion
C program to reverse a number using recursion
C Program to calculate factorial of a number
C program to find perfect numbers between 1 to N using for loop
C program to find all roots of quadratic equation
C program to print all prime factors of a number
List of all C programs