1
+ #include <stdio.h>
2
+
3
+ //Recursive version of GCD
4
+ int gcd_recursive (int num1 , int num2 )
5
+ {
6
+ if (num2 == 0 )
7
+ return num1 ;
8
+ return gcd_recursive (num2 , num1 %num2 );
9
+ }
10
+
11
+ //Non Recursive version of GCD
12
+ int gcd_non_recursive (int num1 , int num2 )
13
+ {
14
+ if (num1 < num2 )
15
+ {
16
+ int temp = num1 ;
17
+ num1 = num2 ;
18
+ num2 = temp ;
19
+ }
20
+ while (num2 != 0 )
21
+ {
22
+ int temp = num2 ;
23
+ num2 = num1 % num2 ;
24
+ num1 = temp ;
25
+ }
26
+ return num1 ;
27
+ }
28
+
29
+ // Entry point
30
+ int main ()
31
+ {
32
+ int a = 10 , b = 15 ;
33
+ printf ("Recursive-GCD(%d, %d) = %d\n" , a , b , gcd_recursive (a , b ));
34
+ printf ("Non-Recurivse-GCD(%d, %d) = %d\n" , a , b , gcd_non_recursive (a , b ));
35
+ a = 35 , b = 10 ;
36
+ printf ("Recursive-GCD(%d, %d) = %d\n" , a , b , gcd_recursive (a , b ));
37
+ printf ("Non-Recurivse-GCD(%d, %d) = %d\n" , a , b , gcd_non_recursive (a , b ));
38
+ a = 31 , b = 2 ;
39
+ printf ("Recursive-GCD(%d, %d) = %d\n" , a , b , gcd_recursive (a , b ));
40
+ printf ("Non-Recurivse-GCD(%d, %d) = %d\n" , a , b , gcd_non_recursive (a , b ));
41
+ a = 10 , b = 0 ;
42
+ printf ("Recursive-GCD(%d, %d) = %d\n" , a , b , gcd_recursive (a , b ));
43
+ printf ("Non-Recurivse-GCD(%d, %d) = %d\n" , a , b , gcd_non_recursive (a , b ));
44
+ return 0 ;
45
+ }
0 commit comments