أبسط طريقة لعمل هذا هي صناعة function gcd
 
int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}
	و لكي تتأكدي من أن القيم المرسلة هي موجبة يمكنك إستخدام الدالة التي تعبر عن القيمة المطلقة abs()
 
	بوضع كل شيء معا قد ينتج لك كود مثل هذا
 
#include <iostream>
#include <stdlib.h>
using std::cin;
using std::cout;
using std::endl;
int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}
int main() {
    int num1, num2;
    cout << "Enter first number: ";
    cin >> num1;
    cout << "Enter second number: ";
    cin >> num2;
    cout << "Greatest Common Divisor: " << gcd(abs(num1), abs(num2)) << endl;
}
	الإجابة مترجمة من موقع stackexchange
 
	الإجابة الأصلية
 
	stackexchange - Greatest common divisor