# 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

• C printf and scanf functions
• For loop in C
• C Program to find factors of a number
• C program to check prime numbers

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

• C printf and scanf functions
• While loop in C

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 while 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