أبسط طريقة لعمل هذا هي صناعة 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