ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий
Тип задачи: Электронные таблицы и формулы.
| КЭС: | 3.2 Оценка сложности вычислений. Время работы и объём используемой памяти, их зависимость от размера исходных данных. Оценка асимптотической сложности алгоритмов. Алгоритмы полиномиальной сложности. Переборные алгоритмы. Примеры различных алгоритмов решения одной задачи, которые имеют различную сложность 3.6 Язык программирования (Паскаль, Python, Java, C++, C#). Типы данных: целочисленные, вещественные, символьные, логические. Ветвления. Сложные условия. Циклы с условием. Циклы по переменной. Обработка данных, хранящихся в файлах. Текстовые и двоичные файлы. Файловые переменные (файловые указатели). Чтение из файла. Запись в файл. Разбиение задачи на подзадачи. Подпрограммы (процедуры и функции). Использование стандартной библиотеки языка программирования |
| Тип ответа: | Краткий ответ |
Ответ: 2009 49628
Решение.
Перебираем все целые n от 14014 до 49635 включительно. Число подходит, если остаток при делении на 13 равен 7, и одновременно оно не делится ни на одно из чисел 5, 12. Все запреты нужно соединить логическим «И».
В Python остаток даёт операция %. Условие равенства нулю проверяет делимость; неравенство нулю исключает её. Счётчик увеличиваем только после проверки полного условия. Каждое число посещается один раз, поэтому совпадение нескольких признаков не приводит к повторному подсчёту.
Полная программа на Python 3:
count = 0
best = None
for n in range(14014, 49636):
if n % 13 == 7 and n % 5 != 0 and n % 12 != 0:
count += 1
if best is None or n > best:
best = n
print(count, best)Программа выводит 2009 49628. Верхний предел range равен 49636, чтобы число 49635 не потерялось. В ответе сначала идёт количество, затем максимум.
Независимая проверка количества. Все признаки зависят только от остатков по указанным делителям. Их наименьшее общее кратное L = 780, поэтому набор подходящих остатков повторяется через L чисел. В блоке от 1 до L подходящих чисел 44.
Обозначим C(N) количество подходящих чисел от 1 до N. Если N = qL + r, то C(N) равно числу полных блоков, умноженному на число подходящих остатков в блоке, плюс число подходящих остатков от 1 до r.
| N | Полные блоки q | Остаток r | Подходящих в остатке | C(N) |
|---|---|---|---|---|
| 14013 | 17 | 753 | 42 | 790 |
| 49635 | 63 | 495 | 27 | 2799 |
На заданном отрезке C(49635) − C(14013) = 2799 − 790 = 2009.
Проверка границы. Первые подходящие числа: 14021, 14034, 14047, 14073, 14086. Последние: 49563, 49576, 49589, 49602, 49628.
Для числа 49628: остаток при делении на 13 равен 7, остаток при делении на 5 равен 3, остаток при делении на 12 равен 8. Оно принадлежит отрезку и проходит все условия. Между ним и соответствующим концом отрезка проверены все целые числа; подходящих среди них нет. Поэтому найденный максимум подтверждён.
Ответ: 2009 49628.
Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINF7582DC.
Сообщение увидит только команда сайта: на странице оно не публикуется.
Комментарии к решению
Комментарии видны всем посетителям сайта.
Комментариев пока нет. Будьте первым.
Чтобы оставить комментарий, войдите или зарегистрируйтесь.