яндекс
  • 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 5. Цикл while

Задача «Поиск наибольшего делителя числа»

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib
В одном из старейших университетов страны профессоры решили провести математический конкурс. Одним из заданий стало нахождение наибольшего делителя заданного числа, который был бы меньше самого числа. Вам было предложено написать программу, которая решит эту задачу.
 
Пример:
Input:
            17
Output:
            Число 17 простое, делителей, кроме 1 и самого себя, нет.
 
Подсказка
В Python конструкция while может иметь блок else, который выполняется, когда цикл завершается нормально (т.е. без использования break).
while условие:
    # тело цикла
    ...
else:
    # блок else
    ...
 
Пример использования
Рассмотрим простой пример, где мы ищем число в списке. Если число найдено, мы прерываем цикл с помощью break. Если же цикл завершился без прерывания, выполняется блок else:
numbers = [1, 2, 3, 4, 5]
target = 3

index = 0
while index < len(numbers):
    if numbers[index] == target:
        print(f"Найден {target} по индексу {index}.")
        break
    index += 1
else:
    print(f"{target} не найден в списке.")
Цикл while начинается и выполняется, пока условие index < len(numbers) истинно.
Внутри цикла мы проверяем, равен ли текущий элемент списка target.
Если находим нужное значение, выводим сообщение и прерываем цикл с помощью break.
Если цикл завершается нормальным образом (то есть без break), выполняется блок else, который сообщает, что значение не найдено в списке.
 
Блок else без break
Если блок else используется без break внутри цикла, он всегда будет выполняться по завершении цикла:
count = 0
while count < 5:
    print(count)
    count += 1
else:
    print("Цикл завершился без прерывания")
Здесь цикл while выполняется, пока count меньше 5. После завершения цикла (когда count становится равным 5), выполняется блок else.
 
Вывод
Конструкция while....else полезна для выполнения кода после завершения цикла только в случае, если цикл не был прерван с помощью break. Это может быть полезно в различных алгоритмах поиска, проверки условий и других подобных задачах.
Solution
Входные данные
Выходные данные

Тесты

2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1

🎉 Поздравляем! 🎉

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

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...