Исключение IndexOutOfRangeException ("Индекс находился вне границ массива") указывает на то, что в каком либо месте программы вы пытаетесь обратится к массиву с индексом, выходящим за его границы.
Вероятнее всего, конкретно в вашем коде ошибка может быть на строке 4, т.к вы объявляете имя a как массив на 100 элементов с допустимыми индексами от 1 до 100, но позже даёте пользователю право самому ввести требуемую размерность, и никак не проверяете вводимое пользователем значение. В таком случае любое число > 100 будет приводить к исключению IndexOutOfRangeException.
Что бы избежать исключительных ситуаций, вы можете пойти двумя путями:
1. Проверять вводимые данные на соответствие диапазону допустимых индексов для массива а
2. Использовать коллекции с динамической размерностью (Array of T или List<T>)
Исключение IndexOutOfRangeException ("Индекс находился вне границ массива") указывает на то, что в каком либо месте программы вы пытаетесь обратится к массиву с индексом, выходящим за его границы.
Вероятнее всего, конкретно в вашем коде ошибка может быть на строке 4, т.к вы объявляете имя a как массив на 100 элементов с допустимыми индексами от 1 до 100, но позже даёте пользователю право самому ввести требуемую размерность, и никак не проверяете вводимое пользователем значение. В таком случае любое число > 100 будет приводить к исключению IndexOutOfRangeException.
Что бы избежать исключительных ситуаций, вы можете пойти двумя путями:
1. Проверять вводимые данные на соответствие диапазону допустимых индексов для массива а
2. Использовать коллекции с динамической размерностью (Array of T или List<T>)
a, b = map(int, input("Введите два числа: \n").split())
a1,b1 = a,b
o = 0
while a1 != b1:
if a1 > b1:
a1 = a1 - b1
else:
b1 = b1 - a1
o += 1
a2,b2 = a,b
m = 0
while a2 != 0 and b2 != 0:
if a2 > b2:
a2 = a2 % b2
else:
b2 = b2 % a2
m += 1
print(f"НОД ({a},{b}) = {a1}")
print(f"Обычный: {o}")
print(f"Модифицированный: {m}")
Объяснение:
Вводим 2 числа (в строку через пробел)
Вычисляем НОД с обычного алгоритма Евклида и считаем количество шагов цикла
Вычисляем НОД с модифицированного алгоритма Евклида и считаем количество шагов цикла
Выводим результат