1+ """
2+ GCD of TWO NUMBERS | OTHER METHODS
3+
4+ Calculate the greatest common divisior of two number
5+
6+ IP: M = 8, N = 6
7+ OP: 2
8+ Explaination:
9+ 8 = 4*2*1
10+ 6 = 3*2*1
11+ GCD(8, 6) = 2
12+
13+ TC: O(log(min(m,n)))
14+ SC: O(log(min(m,n)))
15+ """
16+
17+ def gcd (num1 : int ,num2 : int )-> int :
18+ """GCD of two number
19+
20+ Args:
21+ num1 (int): 1st number
22+ num1 (int): 2nd number
23+
24+ Returns:
25+ int: GCD(num1, num2)
26+ """
27+ if num1 < num2 :
28+ (num1 , num2 ) = (num2 , num1 )
29+
30+ if num1 % num2 :
31+ return num2
32+
33+ return gcd (num2 , num1 % num2 )
34+
35+
36+ if __name__ == '__main__' :
37+ M = int (input ("Enter the first number: " ))
38+ N = int (input ("Enter the second number: " ))
39+
40+ print (f"gcd({ M } , { N } ) = { gcd (M , N )} " )
41+
42+ # OTHER METHODS
43+
144# Euclid Algorithm...
2- # def gcd(m, n) :
3- # if m < n : # Assume m >= n
4- # (m, n ) = (n, m )
5-
6- # if (m%n) == 0 :
7- # return n
45+ # def gcd(num1: int, num2: int)-> int :
46+ # if num1 < num2 : # Assume num1 >= num2
47+ # (num1, num2 ) = (num2, num1 )
48+
49+ # if num1 % num2 :
50+ # return num2
851# else:
9- # diff = m-n
10- # return gcd(max(n, diff), min(n, diff))
11-
12- # def gcd(m,n):
13- # if m < n:
14- # (m, n)=(n,m)
15- # while (m%n)!=0:
16- # diff = m-n
17- # (m, n) = (max(n, diff), min(n, diff))
18-
19- # return n
20-
21- def gcd (m ,n ):
22- if m < n :
23- (m , n ) = (n , m )
24-
25- if m % n == 0 :
26- return n
27- else :
28- return gcd (n , m % n )
29-
30-
31- m = int (input ("Enter the first number: " ))
32- n = int (input ("Enter the second number: " ))
33- print (f"gcd({ m } , { n } ) = { gcd (m ,n )} " )
52+ # diff = num1 - num2
53+ # return gcd(max(num2, diff), min(num2, diff))
54+
55+ # def gcd(num1: int,num2: int)-> int:
56+ # if num1 < num2:
57+ # (num1, num2) = (num2, num1)
58+
59+ # while num1 % num2:
60+ # diff = num1 - num2
61+ # (num1, num2) = (max(num2, diff), min(num2, diff))
62+
63+ # return num2
0 commit comments