Перейти к содержанию
MediaSchool

Цикл с переменной. Делимость и проверка числа на простоту

Программирование цикла for, диапазон и его границы. Проверка делимости целого числа на ненулевой делитель; проверка натурального числа на простоту перебором делителей. Практика: написать или дополнить программу и проверить 1, 2, простое и составное число, объяснив, почему 1 не является простым.

Открыт · Презентация · Методичка · Рабочий лист

Конспект урока

Перебирать целые числа с Python range, находить положительные делители и проверять простоту; обосновывать границы и проверять числа 0, 1 и 2.

Python 3: for d in range(start, stop) с шагом +1 перебирает start, start+1 и далее только числа меньше stop. Правая граница не входит. При start>=stop диапазон пуст. range(stop) начинает с 0, но делитель 0 использовать нельзя. Число положительных делителей рассматривается для 1≤n≤100; основной алгоритм простоты — для целых 0≤n≤1000. Простое число — целое n≥2, имеющее только положительные делители 1 и n. 0 и 1 не простые, 2 простое. Для всех делителей берём range(1,n+1), для поиска собственных нетривиальных делителей range(2,n). prime — логическое значение True/False: исходно n>=2, при найденном делителе меняется только на False. Пустой цикл сам не доказывает простоту: важна инициализация. Не используем break, for-else или ускорение до корня в обязательном коде. D1 — необязательное математическое объяснение пар делителей.

Для работы достаточно бумаги, ручки и памятки. Сохраняй первую попытку; исправления отмечай другим знаком.

Безопасное начало

Сухие руки, без напитков у техники. Провода и разъёмы не трогай, о неисправности сообщи учителю. Работай по правилам кабинета. Две полные минуты в середине урока — без экрана и заданий. Внешний ИИ, аккаунты и личные данные не требуются.

Что уже нужно знать

23–28: Python 3, ввод целого, сравнение, if, остаток %, таблица состояний. В 20 использовался свой включительный ДЛЯ; здесь правила Python явно отличаются.

S0. Чем проверка n%d==0 отличается от присваивания n=d? Почему d не должно быть 0?

Устная проба без отметки.

Диапазон и признак простоты

Python range(a,b) с шагом +1 включает a, но исключает b. Для делителей n≥1 перебирай d от 1 до n через range(1,n+1). Проверка n%d==0 означает делимость. Простое n≥2; для поиска нетривиальных делителей годится range(2,n). Флаг prime начинай с n>=2 и меняй только на False при делителе. True/False — логические значения, без кавычек.

ЗадачаОпора
Все делителиrange(1,n+1), остаток 0
Простотаn≥2 и нет делителей 2…n−1
Пустой rangeТело пропущено, флаг сохранён

Все делители: 1≤n≤100. Простота: 0≤n≤1000, целые. Не делить на 0. Python 3, двоеточия и отступы; итоговый print за циклом. Вводы запускают отдельно. Памятка разрешена.

Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.

Личная проба

C1. Python 3: for d in range(2,5): print(d). До запуска выпиши вывод по строкам и число итераций. Входит ли 5?

Одна минута лично, затем две на разбор. Памятка разрешена.

Диапазон Python

Другая модель: range(1,4) даёт 1,2,3. Для делителей 8 нужны кандидаты 1…8, значит range(1,9); вывод 1,2,4,8. В A1 будут другие числа — сначала свой прогноз.

A1. Код ниже печатает положительные делители n. Предскажи вывод для 6 и отдельно 1; объясни n+1 и начало с 1. Первый вход проверь на ПК, второй вручную.

n = int(input())
for d in range(1, n+1):
    if n % d == 0:
        print(d)

Заготовка для своей записи:

ВходМой вывод / границы
6
1

Сначала своя запись и основание, затем сверка.

Полная пауза

Две минуты без проекции, чтения, вычислений и обсуждения. Отведи взгляд и смени позу.

Флаг хранит найденный факт

Другая модель n=4: начально prime=True, при d=2 остаток 0 и флаг False. При d=3 ничего не меняем. Вывод False. Для n=3 единственный кандидат 2 не делит 3, флаг остаётся True. В A2 заполни код и проверь другие входы.

A2. В коде ниже prime означает «число простое». Заполни два пропуска: исходно n>=2; при делителе значение становится False. До запуска проверь 9 и 2, затем вручную 0 и 1. Один случай выполни на ПК.

n = int(input())
prime = ___
for d in range(2, n):
    if n % d == 0:
        prime = ___
print(prime)

Заготовка для своей записи:

ВходФлаг и причина
9 / 2
0 / 1

Семь минут: три на свои трассы, три на исправление/проверку, одна на сверку. В коротком варианте — шесть минут.

Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.

Что сохраняет пустой диапазон

range(5,5) и range(5,3) с шагом +1 пусты. Если перед таким циклом flag=False, он останется False; если True — останется True. Поэтому правильность результата зависит от инициализации, а не только от наличия итераций.

СитуацияПроверка
Нет кандидатовЧто задано до цикла?
Есть делительФлаг False сохраняется

B1. Ученик в A2 заменил начальную строку на prime=True, оставив поиск d в range(2,n). Проверь входы 0, 1 и 2. В чём ошибка и как исправить одну строку?

Три минуты на свою попытку, затем одна минута на сверку основания. Допустимы разные корректные решения.

Проверка вымышленного ответа ИИ

AI1. Вымышленный ИИ для n=9 пишет: prime=True; для d из range(2,n), если n%d==0, prime=False, иначе prime=True; после цикла print(prime). Проследи d=3 и последнее d=8. Почему итог неверен? Исправь правило обновления и проверь снова.

Это заранее составленный учебный пример. Самостоятельно проверь конкретный шаг; обращение к сервису не требуется.

Помощь и резерв

  • Включает stop. Выпиши только значения меньше stop.
  • Начинает делители с 0. Остаток при делении на 0 недопустим.
  • Называет 1 простым. Сверь определение n≥2.
  • Возвращает True в else. Не стирай найденный делитель.

D1. Резерв. Составное n=a*b, где целые a,b>1. Объясни, почему хотя бы один множитель не больше квадратного корня из n. Требуется ли это ускорение для правильности нашего полного перебора?

D1 — 3–4 минуты для быстро справившихся после основной работы; иначе отдельный резерв следующего занятия. H1, весь тест и шесть новых случаев не складываются в одно обязательное домашнее задание.

Индивидуальный итог

Четыре полные минуты лично. Условия заранее на бумаге. Памятка и разобранные модели разрешены; ключи и веб-разбор закрыты. Учитель не даёт учебных подсказок. Сбор после четырёх минут.

E1. Python 3: какие значения даёт range(1,4)? Какую правую границу взять, чтобы перебрать 1,2,3,4?

E2. Простое число — целое n≥2 с положительными делителями только 1 и n. Является ли 1 простым? В алгоритме prime=n>=2 какой исходный флаг для n=1?

E3. Проверяют программу простоты на 0,1,2,9,11. Назови ожидаемые True/False в этом порядке. Почему одного составного 9 недостаточно?

Разбор после своей попытки

После исправления выбери один новый пример из самопроверки.

Материалы и самопроверка

Презентация, самостоятельный план учителя, рабочий лист, выходной билет и бумажная самопроверка открываются отдельными карточками. DOCX можно смотреть на сайте и скачать. PDF для печати:

Самопроверка на сайте: шесть вопросов с пояснениями, отдельно 5–7 минут. Бумажная версия с письменными основаниями и разбором — 8–12 минут. Все шесть новых письменных случаев — ещё 8–10 минут; выбирай прежде всего случай к своей ошибке. Эти модули не прибавляют к основным 45 минутам и не задаются целиком вместе с H1 автоматически. Пояснения и новые случаи для бумажного разбора есть в плане учителя.

Домашний перенос

H1. Домой 5–7 минут, ПК необязателен. Выпиши все положительные делители 10, используя кандидатов 1…10. Затем реши, простое ли 12, и укажи один делитель кроме 1 и 12.

Полное условие и памятка есть на листе. Решение запиши в тетради. Достаточно 5–7 минут с сохранённой опорой.

Источники

ФРП2025: содержание 8 класса с.10 и планирование с.35–37 — язык и система программирования, данные, ввод/вывод, составление и проверка программ. Python 3 выбран как один из языков, допускаемых программой; часы и последовательность КТП сохранены. Учебник школы не указан; номера параграфов не назначены.

Самопроверка

Проверь себя

6 вопросов по теме «Делимость и простые числа: самопроверка». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.

Открыть отдельно

Вопрос 1 из 6

Тренировка
Python 3: какие значения перебирает range(2,5)?

Без отметки и ограничения времени. Первый ответ учитывается отдельно от исправлений. При обновлении страницы ответы сбросятся.

Скачать и открыть

Материалы урока

6 материалов

Подготовка к уроку

2 материала

Рабочие листы и практика

3 материала

Проверка знаний

1 материал

От сообщества

Материалы сообщества0

Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.

Поделиться материалом

Поделитесь первым материалом

Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.

Комментарии

Войдите, чтобы оставлять комментарии.

Пока нет комментариев. Будьте первым!