#My Python Lectures: https://cutt.ly/python-full-playlist
#Codechef Problem Solution Video: https://cutt.ly/codeChefContestProblemSolution
import math
print("Res =",math.gcd(2, 1))
#Res = 1
// C++ program to find GCD of two numbers
#include <bits/stdc++.h>
using namespace std;
int static dp[1001][1001];
// Function to return gcd of a and b
int gcd(int a, int b)
{
// Everything divides 0
if (a == 0)
return b;
if (b == 0)
return a;
// base case
if (a == b)
return a;
// if a value is already
// present in dp
if(dp[a][b] != -1)
return dp[a][b];
// a is greater
if (a > b)
dp[a][b] = gcd(a-b, b);
// b is greater
else
dp[a][b] = gcd(a, b-a);
// return dp
return dp[a][b];
}
// Driver program to test above function
int main()
{
int a = 98, b = 56;
memset(dp, -1, sizeof(dp));
cout<<"GCD of "<<a<<" and "<<b<<" is "<<gcd(a, b);
return 0;
}
// Iterative Java program to
// implement Stein's Algorithm
import java.io.*;
class GFG {
// Function to implement Stein's
// Algorithm
static int gcd(int a, int b)
{
// GCD(0, b) == b; GCD(a, 0) == a,
// GCD(0, 0) == 0
if (a == 0)
return b;
if (b == 0)
return a;
// Finding K, where K is the greatest
// power of 2 that divides both a and b
int k;
for (k = 0; ((a | b) & 1) == 0; ++k)
{
a >>= 1;
b >>= 1;
}
// Dividing a by 2 until a becomes odd
while ((a & 1) == 0)
a >>= 1;
// From here on, 'a' is always odd.
do
{
// If b is even, remove
// all factor of 2 in b
while ((b & 1) == 0)
b >>= 1;
// Now a and b are both odd. Swap
// if necessary so a <= b, then set
// b = b - a (which is even)
if (a > b)
{
// Swap u and v.
int temp = a;
a = b;
b = temp;
}
b = (b - a);
} while (b != 0);
// restore common factors of 2
return a << k;
}
// Driver code
public static void main(String args[])
{
int a = 34, b = 17;
System.out.println("Gcd of given "
+ "numbers is " + gcd(a, b));
}
}
// This code is contributed by Nikita Tiwari
#include <iostream>
using namespace std;
int gcd(int a , int b)
{
if(a==0)
return a;
if(b==0)
return b;
if(a==b)
return a;
if(a>b)
{
return gcd(a-b,b);
}
else
{
return gcd(a,b-a);
}
}
int main()
{
cout<<gcd(18,24);
return 0;
}