פייתון/פייתון גרסה 3/אלגוריתם אוקלידס

מתוך testwiki
גרסה מ־18:13, 3 בספטמבר 2019 מאת 89.139.46.213 (שיחה) (האלגוריתם)
(הבדל) → הגרסה הקודמת | הגרסה האחרונה (הבדל) | הגרסה הבאה ← (הבדל)
קפיצה לניווט קפיצה לחיפוש

אלגוריתם אוקלידס הוא שיטה למציאת מחלק משותף מקסימלי של שני איברים. לדוגמה המחלק המקסימלי המשותף של 36,24 הוא 12.

האלגוריתם

  1. בהינתן שני מספרים, לדוגמה 42,36, נבחר את המספר הגדול בניהם. במקרה שלנו נקח 42.
  2. נחלק את המספר הגדול במספר הקטן 42/36.
  3. נסמן ב-r את השארית וב-q את הגורם השני (36) שייצג בהמשך את המחלק המשותף. במקרה שלנו נקבל 42=1*36+6 כאשר r=6,q=36
  4. על פי האלגוריתם gcd(a,b)=gcd(b,r) לכן נוכל לבצע שוב את החלוקה כלומר נבצע gdc(36,6)
  5. נקבל 36=6*6+0 כלומר q=6 וזהו המחלק הקטן ביותר.

קידוד

ישנם דרכים מגוונות לאלגוריתם. יש מי שמבצע החסרה ויש מי שמבצע חילוק:

def GCD(x,y): 
    while y > 0: 
        x,y = y,x%y 
    return x