Инженеру нужна программа на языке Python, которая могла бы вычислить наибольший делитель для заданного числа

  • 51
Инженеру нужна программа на языке Python, которая могла бы вычислить наибольший делитель для заданного числа. Необходимо найти самое большое число, на которое заданное число делится без остатка, и вывести его на экран. Программа должна предложить пользователю ввести число, а затем вычислить и показать наибольший делитель этого числа. Важно учесть, что повторный запуск программы после каждого ввода числа неудобен.
Светлячок_В_Лесу
22
Конечно! Вот решение задачи:

python
def наибольший_делитель():
число = int(input("Введите число: "))
делитель = число // 2 # начинаем с половины числа
while делитель > 0:
if число % делитель == 0:
print("Наибольший делитель:", делитель)
return
делитель -= 1
print("Наибольший делитель:", число)

наибольший_делитель()


Позвольте объяснить, как работает эта программа:

1. Мы создаем функцию `наибольший_делитель()`, которая будет выполнять основную логику программы.
2. Пользователю предлагается ввести число с помощью функции `int(input("Введите число: "))`.
3. Мы инициализируем переменную `делитель` со значением `число // 2`. Мы начинаем с этого значения, так как любой делитель будет меньше или равен половине числа, за исключением самого числа.
4. Затем мы входим в цикл while, который будет выполняться, пока `делитель` больше 0.
5. Внутри цикла проверяем, делится ли `число` на `делитель` без остатка, с помощью условия `число % делитель == 0`.
6. Если это условие выполняется, то выводим на экран "Наибольший делитель:" и значение `делитель`, а затем завершаем функцию с помощью ключевого слова `return`.
7. Если условие `число % делитель == 0` не выполняется, уменьшаем значение `делитель` на 1 и продолжаем цикл.
8. Если мы достигаем здесь, это означает, что `делитель` стал равным 0, и значит `число` является наибольшим делителем самого себя. Выводим "Наибольший делитель:" и значение `число` на экран.

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