4. #4#5#6
Объяснение:
1. Изначально переменной i присваивается значение 4:
i := 4
2. Затем ставится условие:
выводить #i, где i это какое-то число;увеличивать i на + 1 (i := i + 1);до тех пор пока i не станет больше 6 (i > 6).3. Поскольку мы уже знаем, что изначально число равно 4, то варианты ответа 1 и 3 не подходят, потому что начинаются с неправильных чисел.
4. Условие остановится только тогда, когда переменная i станет больше 6, то есть оно выведет число 6 тоже, но не число 7.
5. Поскольку второй ответ выводит числа до 5, то правильный ответ номер 4.
Надеюсь, логика понятна.
# 1.
# Полагаю, что в техническом задании ошибка и считаю фразу "делятся на" фразой "целочисленно делятся на".
def IsDivisible(digit, n): return (digit % n == 0)
digits=range(20, 50 + 1)
required=[str(digit) for digit in digits if IsDivisible(digit, 2) and not IsDivisible(digit, 5)]
print("Result:\n", '\n'.join(required))
# 2.
# Боль от запятой. Голову изломал от этого дробного остатка...
digits=range(35, 87 + 1)
required=[str(digit) for digit in digits if digit % 7 == 1 or digit % 7 == 2 or digit % 7 == 5]
print("Result:\n", '\n'.join(required))