Ввести с клавиатуры два натуральных числа и сравнить количество шагов цикла для вычисления их НОД с обычного и модифицированного алгоритмов Евклида. Python
Каждый из возможных символов должен использовать минимально возможное количество БИТ, следовательно : 25 букв + 10 цифр = 35 символов. Для их хранения требуется узнать минимальное количество бит, (Степень цифры 2), поэтому: ( так как 2^5 < 35 < 2^6) получается, что использовать менее 6 бит нельзя. Таким образом, при 6 битах на символ, номер, содержащий 7 символов определяется: 7 * 6 = 42 бита. Так как номер записывается минимально возможным количеством БАЙТ, то объём его в БИТАХ должен быть кратен 8 и в случае необходимости округляться в большую сторону. Ближайшее число кратное 8 - это 48. 48 / 8 = 6 байт. 6 БАЙТ занимает 1 номер. Таким образом, 6 * 80 = 480 байт.
Каждый из возможных символов должен использовать минимально возможное количество БИТ, следовательно : 25 букв + 10 цифр = 35 символов. Для их хранения требуется узнать минимальное количество бит, (Степень цифры 2), поэтому: ( так как 2^5 < 35 < 2^6) получается, что использовать менее 6 бит нельзя. Таким образом, при 6 битах на символ, номер, содержащий 7 символов определяется: 7 * 6 = 42 бита. Так как номер записывается минимально возможным количеством БАЙТ, то объём его в БИТАХ должен быть кратен 8 и в случае необходимости округляться в большую сторону. Ближайшее число кратное 8 - это 48. 48 / 8 = 6 байт. 6 БАЙТ занимает 1 номер. Таким образом, 6 * 80 = 480 байт.
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 числа (в строку через пробел)
Вычисляем НОД с обычного алгоритма Евклида и считаем количество шагов цикла
Вычисляем НОД с модифицированного алгоритма Евклида и считаем количество шагов цикла
Выводим результат