#include<stdio.h>
int main() {
int a,b,c,hcf,st;
printf("Enter three numbers : ");
scanf("%d,%d,%d", &a,&b,&c);
st=a<b?(a<c?a:c):(b<c?b:c);
for (hcf=st;hcf>=1;hcf--) {
if (a%hcf==0 && b%hcf==0 && c%hcf==0)
break;
}
printf("%d",hcf); return 0;
}
// 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;
}