Простое ли число
Напишите функцию is_prime(num), которая принимает натуральное число и возвращает True, если оно простое, и False в противном случае.
Простое число делится только на единицу и на само себя. Единица не простая и не составная.
- Формат входных данных
- Одно натуральное число.
- Формат выходных данных
TrueилиFalse.
Тестовые данные
| № | Ввод | Вывод |
|---|---|---|
| 1 | 1 | False |
| 2 | 10 | False |
| 3 | 2 | True |
| 4 | 17 | True |
| 5 | 101 | True |
| 6 | 100 | False |
| 7 | 360000 | False |
| 8 | 121 | False |
Подсказка 1
Проверка та же, что и на четвёртом занятии: перебрать возможные делители от 2 до num − 1.
Подсказка 2
Внутри функции сигнальная метка не нужна: как только делитель нашёлся, можно сразу вернуть False — return завершает функцию.
Разбор
- Числа меньше двух простыми не бывают — отвечаем
Falseсразу. - Перебираем делители от 2 до num − 1.
- Нашёлся делитель — возвращаем
False. - Цикл закончился, а делителей нет — значит, число простое: возвращаем
True.
Решение
def is_prime(num):
if num < 2: # единица и всё, что меньше, — не простые
return False
for d in range(2, num):
if num % d == 0: # нашёлся делитель — дальше не смотрим
return False
return True # делителей не нашлось
# основная программа
print(is_prime(int(input())))return внутри цикла заменил и сигнальную метку, и break — он делает то же самое, только сразу. Это типичное упрощение, которое появляется, как только код переезжает в функцию.

