Умение создавать собственные программы (10–20 строк) для обработки целочисленной информации · 25 заданий
- Задание №25№25
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: – символ «?» означает ровно одну произвольную цифру…
Алгоритмы обработки чисел
- Задание №25№25
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: 1) символ «?» означает ровно одну произвольную цифр…
Алгоритмы обработки чисел
- Задание №25№25
Пусть M — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, т…
Алгоритмы обработки чисел
- Задание №25№25
Напишите программу, которая перебирает целые числа, большие 350000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный д…
Алгоритмы обработки чисел
- Задание №25№25
Напишите программу, которая перебирает целые числа, большие 450000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный д…
Алгоритмы обработки чисел
- Задание №25№25
Напишите программу, которая перебирает целые числа, большие 550 000, в порядке возрастания и ищет среди них такие, для которых наибольший натуральный…
Алгоритмы обработки чисел
- Задание №25№25
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: 1) символ «?» означает ровно одну произвольную цифр…
Алгоритмы обработки чисел
- Задание №25№25
Пусть F — разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет…
Алгоритмы обработки чисел
- Задание №25№25
Пусть М - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет…
Алгоритмы обработки чисел
- Задание №25№25
Пусть М - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет…
Алгоритмы обработки чисел
- Задание №25№25
Пусть М - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет…
Алгоритмы обработки чисел
- Задание №25№25
Пусть F - разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет…
Алгоритмы обработки чисел
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405. Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 9*?001?1, делящиеся на 12007 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце - соответствующие результаты деления этих чисел на 12007. Количество строк в таблице для ответа избыточно.
Правильный ответ
9098100131 757733 9201000121 766303 9303900111 774873 9406800101 783443 9681400191 806313 9784300181 814883 9887200171 823453 9990100161 832023
Пояснение
Решение:
Перебирать подряд все числа до 1010 не нужно: искомое число обязано делиться на 12007, поэтому переберём сразу кратные n=12007k — их всего ⌊1010/12007⌋=832847, это мгновенно.
Проверку маски удобно поручить модулю fnmatch: в его шаблонах ? означает ровно один символ, а * — любую, в том числе пустую, последовательность символов, то есть ровно то, что написано в условии. Число превращаем в строку и сравниваем с маской 9*?001?1.
from fnmatch import fnmatch
for k in range(1, 10 ** 10 // 12007 + 1):
n = 12007 * k
if fnmatch(str(n), '9*?001?1'):
print(n, k)
Маска 9*?001?1: число начинается на 9, затем произвольный (возможно, пустой) кусок, затем одна любая цифра, затем 001, затем ещё одна любая цифра и 1 в конце. Программа находит 8 чисел.
| Число | Частное от деления на 12007 |
|---|---|
| 9098100131 | 757733 |
| 9201000121 | 766303 |
| 9303900111 | 774873 |
| 9406800101 | 783443 |
| 9681400191 | 806313 |
| 9784300181 | 814883 |
| 9887200171 | 823453 |
| 9990100161 | 832023 |
Ответ: 9098100131 757733 9201000121 766303 9303900111 774873 9406800101 783443 9681400191 806313 9784300181 814883 9887200171 823453 9990100161 832023