From 1156beaa9ef6ee4ffab5c26c56a518123c06c1b5 Mon Sep 17 00:00:00 2001 From: DolzhenkoAlexa Date: Sat, 20 Dec 2025 18:49:09 +0300 Subject: [PATCH 1/2] Create ex_euclid --- src/hw_ExtendedEuclid/ex_euclid | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/hw_ExtendedEuclid/ex_euclid diff --git a/src/hw_ExtendedEuclid/ex_euclid b/src/hw_ExtendedEuclid/ex_euclid new file mode 100644 index 0000000..0f8a373 --- /dev/null +++ b/src/hw_ExtendedEuclid/ex_euclid @@ -0,0 +1,21 @@ +def extended_algorithm(a, b): + """ + Расширенный алгоритм Евклида. + Возвращает (gcd, x, y) такой что: a*x + b*y = gcd(a, b) + """ + if b == 0: + if a >= 0: + return (a, 1, 0) + else: + return (-a, -1, 0) # НОД всегда неотрицательный + + # Рекурсивный вызов + gcd, prev_x, prev_y = extended_algorithm(b, a % b) + + x = prev_y + y = prev_x - (a // b) * prev_y + + return (gcd, x, y) + +gcd, x, y = extended_algorithm(240, -46) +print(f"НОД(240, -46) = {gcd}") From b3d3a27be0c64fa2077dba0e654c4d834c44ec52 Mon Sep 17 00:00:00 2001 From: DolzhenkoAlexa Date: Sat, 20 Dec 2025 18:50:31 +0300 Subject: [PATCH 2/2] Rename ex_euclid to ex_euclid.py --- src/hw_ExtendedEuclid/{ex_euclid => ex_euclid.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/hw_ExtendedEuclid/{ex_euclid => ex_euclid.py} (100%) diff --git a/src/hw_ExtendedEuclid/ex_euclid b/src/hw_ExtendedEuclid/ex_euclid.py similarity index 100% rename from src/hw_ExtendedEuclid/ex_euclid rename to src/hw_ExtendedEuclid/ex_euclid.py