Menu
CoddyTech

Greatest Common Divisor

נתונים לך שני מספרים שלמים חיוביים a ו-b. החזר את המחלק המשותף הגדול ביותר שלהם: המספר השלם הגדול ביותר שמחלק את שניהם ללא שארית.

לדוגמה, המספרים שמחלקים גם את 8 וגם את 12 הם 1, 2 ו-4, ולכן התשובה היא 4.

פונקציה

gcd(a: integer, b: integer) → integer
ainteger
המספר השלם החיובי הראשון
binteger
המספר השלם החיובי השני
מחזירהinteger
המספר השלם הגדול ביותר שמחלק גם את a וגם את b

אילוצים

  • 1 ≤ a ≤ 109
  • 1 ≤ b ≤ 109

דוגמאות

קלט
a = 12b = 18
פלט
6
הסבר
המחלקים של 12 הם 1, 2, 3, 4, 6 ו־12; המחלקים של 18 הם 1, 2, 3, 6, 9 ו־18. הגדול ביותר שמופיע בשתי הרשימות הוא 6.

lock icon+14 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

האם אפשר להרחיב את האלגוריתם של אוקלידס כך שיחזיר גם את המספרים השלמים x ו-y שמקיימים a × x + b × y = gcd(a, b)?

איפוס הקוד
def gcd(a, b):
    # כתוב כאן קוד
מקרי בדיקה

מקרה 1

מקרה 2

מקרה 3

קלט

a = 12
b = 18

צפוי

6