73 lines
3.1 KiB
Markdown
73 lines
3.1 KiB
Markdown
---
|
|
title: Greatest Common Divisor Euclidean
|
|
localeTitle: أعظم القاسم المشترك Euclidean
|
|
---
|
|
## أعظم القاسم المشترك Euclidean
|
|
|
|
لهذا الموضوع يجب أن تعرف عن القاسم المشترك الأكبر (GCD) وعملية MOD أولاً.
|
|
|
|
#### أعظم القاسم المشترك (GCD)
|
|
|
|
يعد GCD من عددين أو أكثر هو العدد الصحيح الأكبر الذي يقسم كل من الأعداد الصحيحة بحيث يكون الباقي صفرًا.
|
|
|
|
مثال-
|
|
GCD of 20، 30 = 10 _(10 is the أكبر رقم يقسم 20 و 30 والباقي على 0)_
|
|
GCD من 42 و 120 و 285 = 3 _(3 هو أكبر عدد يقسم 42 و 120 و 285 مع الباقي مثل 0)_
|
|
|
|
#### عملية "mod"
|
|
|
|
يعطيك عملية التعديل الباقي عندما يتم تقسيم عدد صحيح موجب. نكتبها على النحو التالي
|
|
`A mod B = R`
|
|
|
|
وهذا يعني أن قسمة A إلى B تعطيك الباقي R ، وهذا يختلف عن عملية القسمة التي تعطيك القسمة.
|
|
|
|
مثال-
|
|
7 mod 2 = 1 _(يُقسم القسمان 7 في 2 الباقي 1)_
|
|
42 mod 7 = 0 _(يعطي التقسيم 42 في 7 الباقي 0)_
|
|
|
|
مع المفهومين أعلاه المفهوم سوف تفهم بسهولة خوارزمية الإقليدية.
|
|
|
|
### خوارزمية الإقليدية لأعظم مقام مشترك (GCD)
|
|
|
|
وجدت الخوارزمية الإقليدية GCD من رقمين.
|
|
|
|
ستفهم هذه الخوارزمية بشكل أفضل من خلال رؤيتها أثناء العمل. على افتراض أنك تريد حساب GCD من 1220 و 516 ، يتيح تطبيق الخوارزمية الإقليدية ،
|
|
|
|
على افتراض أنك تريد حساب GCD من 1220 و 516 ، يتيح تطبيق الخوارزمية الإقليدية ، ![مثال إقليدي](https://i.imgur.com/aa8oGgP.png)
|
|
|
|
الكود الزائف للخوارزمية
|
|
الخطوة 1: **دع `a, b` يكون الرقمان**
|
|
الخطوة 2: **`a mod b = R`**
|
|
الخطوة 3: **دع `a = b` و `b = R`**
|
|
الخطوة 4: **كرر الخطوتين 2 و 3 حتى `a mod b` أكبر من 0**
|
|
الخطوة 5: **GCD = ب**
|
|
الخطوة 6: الانتهاء
|
|
|
|
شفرة جافا سكريبت لتنفيذ GCD-
|
|
|
|
`function gcd(a, b) {
|
|
var R;
|
|
while ((a % b) > 0) {
|
|
R = a % b;
|
|
a = b;
|
|
b = R;
|
|
}
|
|
return b;
|
|
}
|
|
`
|
|
|
|
شفرة جافا سكريبت لتنفيذ GCD باستخدام Recursion-
|
|
|
|
`function gcd(a, b) {
|
|
if (b == 0)
|
|
return a;
|
|
else
|
|
return gcd(b, (a % b));
|
|
}
|
|
`
|
|
|
|
يمكنك أيضًا استخدام خوارزمية Euclidean للعثور على GCD لأكثر من رقمين. نظرًا لأن GCD هي علاقة ارتباطية ، فإن العملية التالية صالحة - `GCD(a,b,c) == GCD(GCD(a,b), c)`
|
|
|
|
احسب GCD من أول رقمين ، ثم ابحث عن GCD للنتيجة والعدد التالي. مثال: `GCD(203,91,77) == GCD(GCD(203,91),77) == GCD(7, 77) == 7`
|
|
|
|
يمكنك العثور على GCD للأرقام `n` بالطريقة نفسها. |