#include #include unsigned gcd_rec(unsigned a, unsigned b) { if (b == 0) return a; return gcd_rec(b, a % b); } unsigned gcd(unsigned a, unsigned b) { if (a < b) std::swap(a, b); while (b) { int tmp = b; b = a % b; a = tmp; } return a; } int main(void) { unsigned a, b; std::cout << "a = "; std::cin >> a; std::cout << "b = "; std::cin >> b; std::cout << "gcd(" << a << ", " << b << ") = " << gcd_rec(a, b) << std::endl; std::cout << "gcd(" << a << ", " << b << ") = " << gcd(a, b) << std::endl; return 0; }