Functions Exercises
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.
Required knowledge
Basic C programming, Functions, If else,While loop,Nested while loop
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, say long 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,