Write a C program to print all strong numbers between a given interval in C programming. How to print strong numbers in a given range using functions in C programming. Write a C function to find strong numbers between 1 to n.
Example
Input
Input lower limit: 1 Input upper limit: 1000
Output
Strong numbers between 1 to 100: 1, 2, 145
Required knowledge
Basic C programming, If else, While loop, Nested while loop, Functions
Must know – Program to check strong number.
Declare function to find all strong numbers in given range
- First give a meaningful name to our function, say
printStrongNumbers()
. Along with this we must define function to find factorial of a number, saylong long fact(int num);
. - Next we need to print strong numbers in range. Therefore, the function must accept two integer parameters start and end limit of strong numbers.
- Finally the function simply prints strong numbers in range and returns nothing.
After looking on above points function declaration to print strong numbers in range is – void printStrongNumbers(int start, int end);.
Program to print strong numbers in given interval
/**
* C program to print strong numbers in a given interval using functions
*/
#include <stdio.h>
/* Function declaration */
long long fact(int num);
void printStrongNumbers(int start, int end);
int main()
{
int start, end;
/* Input start and end range */
printf("Enter the lower limit to find strong number: ");
scanf("%d", &start);
printf("Enter the upper limit to find strong number: ");
scanf("%d", &end);
printf("All strong numbers between %d to %d are: \n", start, end);
printStrongNumbers(start, end);
return 0;
}
/**
* Print all strong numbers in a given range
*/
void printStrongNumbers(int start, int end)
{
long long sum;
int num;
// Iterates from start to end
while(start != end)
{
sum = 0;
num = start;
// Calculate sum of factorial of digits
while(num != 0)
{
sum += fact(num % 10);
num /= 10;
}
// If sum of factorial of digits equal to current number
if(start == sum)
{
printf("%d, ", start);
}
start++;
}
}
/**
* Recursively find factorial of any number
*/
long long fact(int num)
{
if(num == 0)
return 1;
else
return (num * fact(num-1));
}
In the above program I have used recursive approach to find factorial. However, you can also use simple iterative approach to find factorial of a number.
Output
Enter the lower limit to find strong number: 1 Enter the upper limit to find strong number: 100000 All strong numbers between 1 to 100000 are: 1, 2, 145, 40585,
Happy coding 😉
Recommended posts
- Function and recursion programming exercise index.
- C program to find prime numbers in given range using function.
- C program to find armstrong numbers in given range using function.
- C program to find perfect numbers in given range using function.
- C program to check even number using function.
- C program to print all natural numbers in given range using recursion.