الخوارزمية الثنائية لحساب القاسم المشترك الأكبر  الخوارزمية الثنائية لحساب القاسم المشترك الأكبر، أو خوارزمية GCD الثنائية ، والمعروفة أيضًا باسم خوارزمية Stein أو الخوارزمية الإقليدية الثنائية، هي خوارزمية تحسب القاسم المشترك الأكبر لعددين صحيحين غير سالبين. تستخدم هذه الخوارزمية عمليات حسابية أبسط من الخوارزمية الإقليدية التقليدية، حيث يستبدل القسمة بعمليات حسابية مثل الإزاحات والمقارنات والطرح.  على الرغم من أن الخوارزمية في شكلها المعاصر قد نُشرت لأول مرة من قبل الفيزيائي والمبرمج جوزيف شتاين في عام 1967، إلا أنها ربما كانت معروفة في القرن الثاني قبل الميلاد في الصين القديمة.  تقلل الخوارزمية من مشكلة العثور على القاسم المشترك الأكبر (gcd) لرقمين غير سالبين "v" و"u من" خلال تطبيق هذه الخطوات بشكل متكرر:   فيما يلي تنفيذ متكرر للخوارزمية في لغة سي. يشبه التطبيق وصف الخوارزمية المذكورة أعلاه، وهو مُحسّن لسهولة القراءة بدلاً من سرعة التنفيذ، على الرغم من أن جميع الاستدعاءات المتكررة باستثناء واحدة هي ذيل متكرر . unsigned int gcd(unsigned int u, unsigned int v)  فيما يلي تنفيذ الخوارزمية في لغة Rust ، مقتبس من "uutils". حيث يزيل جميع العوامل المشتركة لـ 2 ، ثم يحسب القاسم المشترك الأكبر GCD للأرقام المتبقية باستخدام الهويات 3 و 4 (identity)، ويجمع بين هذه لتشكيل الإجابة النهائية. pub fn gcd(mut u: u64, mut v: u64) -> u64 {  يعرض هذا التنفيذ العديد من تحسينات الأداء:   تتطلب الخوارزمية خطوات O ("n") ، حيث "n" هو عدد البتات في العدد الأكبر من الرقمين، حيث إن كل خطوتين تقلل واحدًا على الأقل من المعاملات بمقدار 2 على الأقل. تتضمن كل خطوة عددًا قليلاً من العمليات الحسابية (O (1) بثابت صغير) ؛ عند العمل بأرقام بحجم الكلمة ، تُترجم كل عملية حسابية إلى عملية آلة machine operation واحدة، وبالتالي فإن عدد عمليات الآلة يكون في حدود log(max("u", "v"))  ومع ذلك، فإن التعقيد المقارب لهذه الخوارزمية هو O(n)، حيث أن هذه العمليات الحسابية (الطرح والتحويل) تستغرق كل منها وقتًا خطيًا للأرقام ذات الحجم الاختياري (عملية آلة واحدة لكل كلمة من التمثيل). هذا هو نفسه بالنسبة للخوارزمية الإقليدية، على الرغم من أن التحليل الأكثر دقة الذي أجراه Akhavi وVallée أثبت أن هذه الخوارزمية تستخدم عمليات-بت أقل بنسبة 60٪.  يمكن توسيع خوارزمية GCD الثنائية بعدة طرق، إما لإخراج معلومات إضافية، أو التعامل مع أعداد صحيحة كبيرة بشكل عشوائي ، أو لحساب GCDs في مجالات أخرى غير الأعداد الصحيحة.  تناظر خوارزمية "GCD الثنائية الممتدة" ، الخوارزمية الإقليدية الموسعة، حيث توفر معاملات بيزوت بالإضافة إلى GCD ، أي أن الأعداد الصحيحة "a" و"b" بحيث أن "a · u + b · v" = gcd("u", "v").  في حالة الأعداد الصحيحة الكبيرة، فإن أفضل تعقيد مقارب asymptotic complexity هو O (log "n" M ("n")) ، حيث M ("n") هي تكلفة ضرب "n" من البتات ؛ وهذا شبه خطي، وأصغر بكثير من O (n²) من خوارزمية GCD الثنائية، على الرغم من أن التطبيقات الملموسة تتفوق فقط على الخوارزميات القديمة للأرقام الأكبر من حوالي 64 كيلو-بت ("أي" أكبر من 8 × 10 ). يتحقق ذلك من خلال توسيع خوارزمية GCD الثنائية باستخدام أفكار من خوارزمية Schönhage – Strassen لضرب عدد صحيح سريعًا.  جرى أيضًا توسيع خوارزمية GCD الثنائية لتشمل مجالات أخرى غير الأعداد الطبيعية، مثل الأعداد الصحيحة الغاوسية، وأعداد آيزنشتاين الصحيحة، والحلقات التربيعية، ومجالات العوامل الفريدة الاختيارية.  عُرفت خوارزمية لحساب GCD المكونة من رقمين في الصين القديمة، في عهد أسرة هان ، كطريقة لتقليل الكسور:  عبارة «إذا أمكن خفضها إلى النصف» غامضة،    يغطي GCD الثنائي الممتد، وتحليل احتمالي للخوارزمية.  يغطي مجموعة متنوعة من الموضوعات، بما في ذلك خوارزمية GCD الثنائية الموسعة التي تنتج معاملات بيزوت ، والتعامل الفعال مع الأعداد الصحيحة متعددة الدقة باستخدام متغير من خوارزمية Lehmer GCD ، والعلاقة بين GCD والتوسعات المستمرة للكسور للأرقام الحقيقية.  تحليل الخوارزمية في الحالة المتوسطة، من خلال التحليل الوظيفي : يتم عرض المعاملات الرئيسية للخوارزميات كنظام ديناميكي ، ومتوسط قيمتها مرتبط بالقياس الثابت لمعامل النقل في النظام.