Week 8:
a) Write program to find GCD of two integers using non-recursive function
and recursive function
b) Write a C program to demonstrate recursion by finding the factorial and
Fibonacci sequence.
a) Write program to find GCD of two integers using non-recursive function
and recursive function
#include <stdio.h>
// Function prototype declarations
int gcd_iterative(int a, int b);
int gcd_recursive(int a, int b);
main()
int num1, num2;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
// Calling the iterative function
printf("GCD (Iterative) of %d and %d = %d\n", num1, num2,
gcd_iterative(num1, num2));
// Calling the recursive function
printf("GCD (Recursive) of %d and %d = %d\n", num1, num2,
gcd_recursive(num1, num2));
return 0;
}
// ---------------- Iterative GCD Function ----------------
int gcd_iterative(int a, int b)
int temp;
while (b != 0)
temp = b;
b = a % b;
a = temp;
return a;
// ---------------- Recursive GCD Function ----------------
int gcd_recursive(int a, int b)
if (b == 0)
return a;
else
return gcd_recursive(b, a % b);
}
b) Write a C program to demonstrate recursion by finding the factorial
and Fibonacci sequence.
#include <stdio.h>
// Function prototypes
int factorial(int n);
int fibonacci(int n);
main()
int num, terms;
// Factorial
printf("Enter a number to find factorial: ");
scanf("%d", &num);
printf("Factorial of %d = %d\n", num, factorial(num));
// Fibonacci
printf("\nEnter number of terms for Fibonacci sequence: ");
scanf("%d", &terms);
printf("Fibonacci Sequence: ");
for (int i = 0; i < terms; i++) {
printf("%d ", fibonacci(i));
return 0;
}
// ---------------- Recursive Factorial ----------------
int factorial(int n)
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
// ---------------- Recursive Fibonacci ----------------
int fibonacci(int n)
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);