Присоединиться

Информатика·Алгоритмы и программирование·9–11 класс

При каких трёхзначных числах программа напечатает «ДА»: x % 7 == 3 and x % 5 == 2

Условие

Программа считывает с клавиатуры натуральное число x и печатает слово «ДА», если одновременно истинны два условия: x % 7 == 3 и x % 5 == 2; в противном случае программа печатает «НЕТ». Найдите наименьшее трёхзначное число, при вводе которого программа напечатает «ДА», и определите, сколько всего трёхзначных чисел обладают этим свойством.

Ответ

Наименьшее — 122; всего таких трёхзначных чисел 26

Решение по шагам

  1. Шаг 1. Переводим условия программы на язык остатков

    Оператор % возвращает остаток от деления. Значит, условие программы означает одновременно:

    • xx при делении на 7 даёт остаток 3, то есть x=7a+3x = 7a + 3 для некоторого целого a0a \ge 0;
    • xx при делении на 5 даёт остаток 2, то есть x=5b+2x = 5b + 2 для некоторого целого b0b \ge 0.

    Заметим сразу: остаток всегда меньше делителя, поэтому оба условия непротиворечивы (3<73 < 7, 2<52 < 5). Перебирать все 900 трёхзначных чисел не нужно — достаточно найти одно подходящее число и понять, с каким шагом идут остальные.

  2. Шаг 2. Ищем первое подходящее число и период повторения

    Удобно перебирать числа вида 5b+25b + 2 (их реже) и проверять остаток при делении на 7:

    xx271217
    xmod7x \bmod 72053

    Первое подходящее число — x=17x = 17.

    Теперь про период. Если xx подходит, то и x+dx + d подходит ровно тогда, когда dd делится и на 7, и на 5. Наименьшее такое dd — это НОК(7,5)=35\text{НОК}(7,5) = 35 (числа взаимно просты, поэтому НОК равен произведению).

    Значит, все решения имеют вид x=35k+17x = 35k + 17. Осталось выбрать из них трёхзначные.

Осталось ещё 3 шага — откроются после входа:

  • Шаг 3. Находим наименьшее трёхзначное решение
  • Шаг 4. Находим наибольшее трёхзначное решение и считаем количество
  • Шаг 5. Проверяем ответ вторым способом
Получить полное решение

Бесплатно · займёт минуту

Частые ошибки

  • Пишут в ответ 17: это наименьшее решение вообще, но в задаче спрашивается наименьшее трёхзначное.

  • Берут период равным 7+5=127 + 5 = 12 вместо НОК(7,5)=35\text{НОК}(7,5) = 35.

  • Считают количество как (997122)/35=25(997-122)/35 = 25, забывая прибавить единицу («ошибка забора»).

  • Считают трёхзначными числа от 100 до 1000 включительно и добавляют лишний член.

  • Меняют остатки местами (ищут остаток 2 при делении на 7 и 3 при делении на 5) — получается совсем другая серия: 23, 58, 93, …

  • Проверяют делимость вместо остатка: пишут x % 7 == 0.

Другие задачи по теме «Алгоритмы и программирование»