freeCodeCamp/guide/arabic/algorithms/greatest-common-divisor-euc.../index.md

3.1 KiB

title localeTitle
Greatest Common Divisor Euclidean أعظم القاسم المشترك 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 ، يتيح تطبيق الخوارزمية الإقليدية ، مثال إقليدي

الكود الزائف للخوارزمية
الخطوة 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 بالطريقة نفسها.