Factorial of a number is the product of all the numbers preceding it. For example, Factorial of 6 is 720 (1 x 2 x 3 x 4 x 5 x 6 = 720).
In general, n objects can be arranged in n(n – 1)(n – 2) … (3)(2)(1) ways. This product is represented by the symbol n!, which is called n factorial. By convention, 0! = 1.
Video Tutorial: C Program To Find Factorial of a Number using Function
Source Code: C Program To Find Factorial of a Number using Function
#include
void factorial(int);
int main()
{
int num;
printf("Enter a positive number to find Factorial\n");
scanf("%d", &num);
factorial(num);
return 0;
}
void factorial(int num)
{
int count, fact = 1;
if(num == 0)
{
printf("Factorial of 0 is 1 (!0 = 1)\n");
}
else
{
for(count = 1; count <= num; count++)
{
fact = fact * count;
}
printf("\nFactorial of %d is %d (!%d = %d)\n", num, fact, num, fact);
}
}
Output 1: Enter a positive number to find Factorial 5
Factorial of 5 is 120 (!5 = 120)
Output 2: Enter a positive number to find Factorial 4
Factorial of 4 is 24 (!4 = 24)
Output 3: Enter a positive number to find Factorial 6
Factorial of 6 is 720 (!6 = 720)
Output 4: Enter a positive number to find Factorial 7
Factorial of 7 is 5040 (!7 = 5040)
Output 5: Enter a positive number to find Factorial 8
Factorial of 8 is 40320 (!8 = 40320)
Logic To Find Factorial of a Number
Complete for loop logic to find Factorial of a number is present at C Program To Find Factorial of a Number. Watch the video without fail to understand the logic.
Note: Function factorial doesn’t return anything so its return type is void. It accepts 1 integer type argument.
What Is Fibonacci Series ? Fibonacci Series is a series of numbers where the first two Fibonacci numbers are 0 and 1, and each subsequent number is the sum of the previous two. Its recurrence relation is given by Fn = Fn-1 + Fn-2.
Below are a series of Fibonacci numbers(10 numbers): 0 1 1 2 3 5 8 13 21 34
How Its Formed: 0 <– First Number (n1) 1 <– Second Number (n2) 1 <– = 1 + 0 (previous two numbers) 2 <– = 1 + 1 (previous two numbers) 3 <– = 2 + 1 (previous two numbers) 5 <– = 3 + 2 (previous two numbers) 8 <– = 5 + 3 (previous two numbers) 13 <– = 8 + 5 (previous two numbers) 21 <– = 13 + 8 (previous two numbers) 34 <– = 21 + 13 (previous two numbers)
Video Tutorial: C Program To Generate Fibonacci Series using Function
We ask the user to enter the limit i.e., how many terms in the Fibonacci series to be printed. We pass this user entered limit to function fibonacci.
Inside fibonacci function We initialize n1 to 0 and n2 to 1 and display it to the console. We do this because we know that in any Fibonacci series the first two numbers are 0 and 1.
Now we add n1 and n2 and assign it to n3, and display the value of n3 – which is the next number in the Fibonacci series. We use for loop to keep printing the Fibonacci series until the limit entered by the user.
Note: Function fibonacci takes 1 integer type argument and doesn’t return anything, so its return type is void.
In today’s video tutorial lets find all the Armstrong numbers or Narcissistic numbers between user entered range, using function / method.
An Armstrong number or Narcissistic number is an n-digit base b number such that the sum of its (base b) digits raised to the power n is the number itself.
Example 1: If number = 370 It has 3 digits: 3, 7 and 0. So n = 3. result = 33 + 73 + 03 = 27 + 343 + 0 = 370. So the original number 370 is equal to the result. So it’s an Armstrong Number.
Example 2: If number = 8208 It has 4 digits: 8, 2, 0 and 8. So n = 4. result = 84 + 24 + 04 + 84 = 4096 + 16 + 0 + 4096 = 8208. So the original number 8208 is equal to the result. So it’s an Armstrong Number.
Full Source Code: C Program To Find Armstrong Numbers Between Range using Function
#include
#include
float armstrong(int);
int main()
{
int count, start, end, temp;
printf("Enter start and end values\n");
scanf("%d%d", &start, &end);
if(start > end)
{
temp = start;
start= end;
end = temp;
}
printf("Armstrong numbers between %d and %d are\n", start, end);
for(count = start; count <= end; count++)
{
if(count == armstrong(count))
{
printf("%d is an Armstrong number\n", count);
}
}
return 0;
}
float armstrong(int num)
{
int rem, n = 0, temp;
float sum = 0.0;
temp = num;
while(temp)
{
temp = temp / 10;
n++;
}
while(num)
{
rem = num % 10;
sum = sum + pow(rem, n);
num = num / 10;
}
return(sum);
}
Output 1: Enter start and end values 1 999 Armstrong numbers between 1 and 999 are 1 is an Armstrong number 2 is an Armstrong number 3 is an Armstrong number 4 is an Armstrong number 5 is an Armstrong number 6 is an Armstrong number 7 is an Armstrong number 8 is an Armstrong number 9 is an Armstrong number 153 is an Armstrong number 370 is an Armstrong number 371 is an Armstrong number 407 is an Armstrong number
Output 2: Enter start and end values 500 99999 Armstrong numbers between 500 and 99999 are 1634 is an Armstrong number 8208 is an Armstrong number 9474 is an Armstrong number 54748 is an Armstrong number 92727 is an Armstrong number 93084 is an Armstrong number
Output 3: Enter start and end values 1 99999 Armstrong numbers between 1 and 99999 are 1 is an Armstrong number 2 is an Armstrong number 3 is an Armstrong number 4 is an Armstrong number 5 is an Armstrong number 6 is an Armstrong number 7 is an Armstrong number 8 is an Armstrong number 9 is an Armstrong number 153 is an Armstrong number 370 is an Armstrong number 371 is an Armstrong number 407 is an Armstrong number 1634 is an Armstrong number 8208 is an Armstrong number 9474 is an Armstrong number 54748 is an Armstrong number 92727 is an Armstrong number 93084 is an Armstrong number
Output 4: Enter start and end values 1 500 Armstrong numbers between 1 and 500 are 1 is an Armstrong number 2 is an Armstrong number 3 is an Armstrong number 4 is an Armstrong number 5 is an Armstrong number 6 is an Armstrong number 7 is an Armstrong number 8 is an Armstrong number 9 is an Armstrong number 153 is an Armstrong number 370 is an Armstrong number 371 is an Armstrong number 407 is an Armstrong number
Logic To Find Armstrong Numbers Between Range using Function
We ask the user to enter start and end value i.e., the range. Using for loop we iterate through all the numbers between start and end. For each iteration of for loop, variable count holds the number which we need to check if its Armstrong number or not.
Value of count is passed to function armstrong. Function armstrong counts the number of digits present in the integer number(we store it inside variable n) and then multiplies all the individual digits of the number by n and adds them. The sum is returned back to the calling function.
If value present in count and the value returned by armstrong method are equal, then the value present in count is an Armstrong number and will be displayed on the console window.
Lets write a C program to find Armstrong number or Narcissistic number from 1 to 500 using function.
Problem Statement Write a C program to print out all Armstrong numbers or Narcissistic number between 1 and 500. If sum of cubes of each digit of the number is equal to the number itself, then the number is called an Armstrong number. Hint: Use function / method.
An Armstrong number or Narcissistic number is an n-digit base b number such that the sum of its (base b) digits raised to the power n is the number itself.
Example 1: If number = 153 It has 3 digits: 1, 5 and 3. So n = 3. result = 13 + 53 + 33 = 1 + 125 + 27 = 153. So the original number 153 is equal to the result. So it’s an Armstrong Number.
Example 2: If number = 1634 It has 4 digits: 1, 6, 3 and 4. So n = 4. result = 14 + 64 + 34 + 44 = 1 + 1296 + 81 + 256 = 1634. So the original number 1634 is equal to the result. So it’s an Armstrong Number.
Full Source Code: C Program To Find Armstrong Numbers Between 1 and 500 using Function
#include
#include
float armstrong(int);
int main()
{
int count;
for(count = 1; count <= 500; count++)
{
if(count == armstrong(count))
{
printf("%d is a Armstrong number\n", count);
}
}
return 0;
}
float armstrong(int num)
{
int rem, n = 0, temp;
float sum = 0.0;
temp = num;
while(temp)
{
temp = temp / 10;
n++;
}
while(num)
{
rem = num % 10;
sum = sum + pow(rem, n);
num = num / 10;
}
return(sum);
}
Output: 1 is a Armstrong number 2 is a Armstrong number 3 is a Armstrong number 4 is a Armstrong number 5 is a Armstrong number 6 is a Armstrong number 7 is a Armstrong number 8 is a Armstrong number 9 is a Armstrong number 153 is a Armstrong number 370 is a Armstrong number 371 is a Armstrong number 407 is a Armstrong number
#include
#include
float armstrong(int);
int main()
{
int count;
for(count = 1; count <= 500; count++)
{
if(count == armstrong(count))
{
printf("%d is a Armstrong number\n", count);
}
}
return 0;
}
float armstrong(int num)
{
int rem;
float sum = 0.0;
while(num)
{
rem = num % 10;
sum = sum + (rem * rem * rem);
num = num / 10;
}
return(sum);
}
Output: 1 is a Armstrong number 153 is a Armstrong number 370 is a Armstrong number 371 is a Armstrong number 407 is a Armstrong number
Logic To Find Armstrong Numbers Between 1 and 500 using Function
Using for loop(inside main method) we pass value(from 1 to 500) to armstrong function one by one. The value is present in variable count.
Function armstrong checks the number of digits present in the number(we call it as n) and then separates individual digits of the number and multiplies all the individual digits n times and adds them all and finally returns the sum.
If the armstrong function returned number and the value present in count are same then the value present in count is an Armstrong number, else we pass on to check the next number selected by for loop.
Source Code: C Program To Find Biggest of Three Numbers using Function
#include
int biggest(int, int, int); // function prototype
int main()
{
int a, b, c;
printf("Enter 3 integer numbers\n");
scanf("%d%d%d", &a, &b, &c);
//function call biggest(a, b, c)
printf("Biggest of %d, %d and %d is %d\n", a, b, c, biggest(a, b, c));
return 0;
}
// function definition
int biggest(int x, int y, int z)
{
if(x > y && x > z)
{
return x;
}
else
{
if(y > z)
return y;
else
return z;
}
}
Output Enter 3 integer numbers 50 40 60 Biggest of 50, 40 and 60 is 60
Source Code: C Program To Find Biggest of Three Numbers using Function, Using Ternary Operator
#include
int biggest(int, int, int); // function prototype
int main()
{
int a, b, c;
printf("Enter 3 integer numbers\n");
scanf("%d%d%d", &a, &b, &c);
//function call biggest(a, b, c)
printf("Biggest of %d, %d and %d is %d\n", a, b, c, biggest(a, b, c));
return 0;
}
// function definition
int biggest(int x, int y, int z)
{
return( (x>y && x>z)?x:(y>z)?y:z );
}
Logic To Find Biggest of 3 Numbers using Function
We ask the user to enter 3 integer numbers. We pass those 3 integer numbers to user defined function biggest. Inside function biggest we use ternary operator to determine the biggest of those 3 numbers. Function biggest returns the biggest of the 3 numbers back to the calling method/function – in above progam its main() method.
Note: Function biggest returns integer type data. And it takes 3 arguments of type integer. We’re calling function biggest from inside printf() function.