Write a C program to input a number from user and calculate product of its digits. How to find product of digits of a number using loop in C programming. Logic to find product of digits of a given number in C program.
Example
Input
Input number: 1234
Output
Product of digits: 24
Required knowledge
Basic C programming, While loop
Logic to find product of digits of a number
Logic to find product of digits is exactly similar to sum of digits. If you are done with previous program sum of digits, you can easily think logic for this program. If not read below logic to find product of digits.
I have divided the logic to calculate product of digits in three steps.
- Extract last digit of the given number.
- Multiply the extracted last digit with product.
- Remove the last digit by dividing number by 10.
Step by step descriptive logic to find product of digits of a given number.
- Input a number from user. Store it in some variable say num.
- Initialize another variable to store product i.e.
product = 1
. Now, you may think why I have initialized product with 1 why not 0? This is because we are performing multiplication operation not summation. Multiplying a number with 1 returns same, so as summation with 0 returns same. Hence, I have initialized product with 1. Also be sure to initialize theproduct
with 0 if num is 0. - Find last digit of number by performing modulo division by 10 i.e.
lastDigit = num % 10
. - Multiply last digit found above with product i.e.
product = product * lastDigit
. - Remove last digit by dividing the number by 10 i.e.
num = num / 10
. - Repeat step 3-5 till number becomes 0. Finally you will be left with product of digits in product variable.
Program to find product of digits of a number
/**
* C program to calculate product of digits of a number
*/
#include <stdio.h>
int main()
{
int num;
long long product=1ll;
/* Input number from user */
printf("Enter any number to calculate product of digit: ");
scanf("%d", &num);
product = (num == 0 ? 0 : 1ll);
/* Repeat the steps till num becomes 0 */
while(num != 0)
{
/* Get the last digit from num and multiplies to product */
product = product * (num % 10);
/* Remove the last digit from n */
num = num / 10;
}
printf("Product of digits = %lld", product);
return 0;
}
In the above program I have declared product as long long type and used %lld
format specifier to print a long long
type.
Also you have noticed I have used a suffix ll
to initialize long long
type i.e. long long product = 1ll;
. This is because 1 is implicitly treated as integer in C, hence to make compiler aware that 1 is a long long
value I have used suffix ll
.
Read more about – Literals in C programming.
Output
Enter any number to calculate product of digit: 1234 Product of digits = 24
Happy coding 😉
Recommended posts
- Loop programming exercises index.
- C program to count number of digits in any number.
- C program to find sum of first and last digit of any number.
- C program to swap first and last digit of any number.
- C program to find sum of digits of a given number.
- C program to find frequency of each digit in a number.
- C program to find reverse of any number.