תכנות - שיעור 4 10/April/2005    

מציאת המחלק המשותף המקסימלי Greatest Common Divisor (gcd) . נתונים מספרים טבעיים m, n. המספר d = { mathop { rm gcd} nolimits}(m,n), הוא המספר הגדול ביותר שמחלק גם את m וגם את n.

דוגמאות

{ mathop { rm gcd} nolimits}(2,3) = 1 
{ mathop { rm gcd} nolimits}(12,18) = 6
{ mathop { rm gcd} nolimits}(30,45) = 15
{ mathop { rm gcd} nolimits}(154,1001) = 77

התחלנו לראות את האלגוריתם של אוקלידס . הרעיון הוא לפשט את הבעיה צעד צעד, על ידי חלוקה עם שארית, והחלפת המספר הגדול בשארית. לדוגמא המקרה הבא: { mathop { rm gcd} nolimits}(102,42) = { mathop { rm gcd} nolimits}(42,18) = { mathop { rm gcd} nolimits}(18,6) = 6.

ראינו שיטה ב-python להחליף בין ערכי שני משתנים, על ידי 3 השמות:


# Let x and y  exchange values
t = x
x = y
y = t


חידה
נניח כי x ו y מכילים מספרים. כתוב סדרת השמות כך ש-x ו-y יתחלפו בערכים, כמו למעלה, אבל הפעם מבלי להשתמש במשתנה זכרון נוסף.