خواهشاْ تمرین کنید یاد بگیرید زمان را هدر ندید .
int gcd(int a, int b)
{
if (b == 0) return a;
printf("%d,%d\n", b, a%b);
return gcd(b, a%b);
}
int main()
{
printf("%d\n", gcd(84,18));
return 0;
}
//خروجی
18,12
12,6
6,0
6
توضیحات :
مثال: یافتن (۸۴٬۱۸)gcd
ابتدا ۸۴ را به ۱۸ تقسیم می کنیم؛ خارج قسمت تقسیم ۴ و باقیمانده ۱۲ بدست میآید. سپس ۱۸ را بر ۱۲ تقسیم می کنیم؛ خارج قسمت ۱ و باقیمانده ۶ بدست میآید؛ مجدداً ۱۲ را بر ۶ تقسیم میکنیم؛ خارج قسمت ۲ و باقیمانده ۰ میشود. پس عدد ۶ ب.م.م دو عدد ۸۴ و ۱۸ است.