Python! Level E. Write a program that takes a natural number from the keyboard and determines whether there

  • 24
Python! Level E. Write a program that takes a natural number from the keyboard and determines whether there are two identical digits next to each other in its decimal representation. Level F. Write a program that takes two natural numbers from the keyboard and finds their greatest common divisor using the Euclidean algorithm. The program should count the number of steps in the cycle.
Tigrenok
1
Конечно, давайте начнем с задачи на определение наличия одинаковых цифр рядом в десятичном представлении числа, которая соответствует уровню E.

Для начала нужно написать программу, которая будет запрашивать у пользователя натуральное число, а затем проверять, есть ли у него две одинаковые цифры рядом в десятичной записи. Вот код на языке Python для решения этой задачи:

python
def check_adjacent_digits():
number = input("Введите натуральное число: ")

for i in range(len(number) - 1):
if number[i] == number[i + 1]:
print("Да, в числе есть две одинаковые цифры рядом.")
return

print("Нет, в числе нет двух одинаковых цифр рядом.")

check_adjacent_digits()


Этот код позволяет пользователю ввести число, а затем проверяет каждую пару соседних цифр в его десятичной записи на равенство. Если две цифры рядом одинаковые, программа сообщит об этом. Если таких цифр нет, программа также сообщит об этом.

Теперь перейдем к задаче на нахождение наибольшего общего делителя двух чисел с использованием алгоритма Евклида, соответствующей уровню F.

Для этой задачи нужно написать программу, которая запрашивает у пользователя два натуральных числа и находит их наибольший общий делитель с помощью алгоритма Евклида, а также подсчитывает количество шагов, необходимых для выполнения алгоритма. Вот код на языке Python для решения этой задачи:

python
def euclidean_algorithm(a, b):
steps = 0
while b:
a, b = b, a % b
steps += 1
return a, steps

def find_gcd_with_steps():
number1 = int(input("Введите первое натуральное число: "))
number2 = int(input("Введите второе натуральное число: "))

gcd, steps = euclidean_algorithm(number1, number2)

print("Наибольший общий делитель чисел {} и {} равен {}.".format(number1, number2, gcd))
print("Количество шагов в алгоритме Евклида: {}.".format(steps))

find_gcd_with_steps()


В данном коде функция `euclidean_algorithm()` реализует алгоритм Евклида для нахождения НОД двух чисел, а функция `find_gcd_with_steps()` запрашивает два числа у пользователя, находит их наибольший общий делитель и выводит его, а также количество шагов, выполненных в ходе алгоритма.

Надеюсь, эти программы помогут понять школьникам соответствующие задачи на Python!