Задания для самостоятельного выполнения
- Сложность:
- Rare
- Напишите программу для решения задач своего варианта.
- Оформите отчёт в
README.md
. Отчёт должен содержать:- Условия задач
- Описание проделанной работы
- Скриншоты результатов
- Ссылки на используемые материалы
- Сложность:
- Medium
- Напишите для функций доктесты
- Сложность:
- Well-done
- Обобщите алгоритмы решения своих задач и оберните их в соответствующие классы
Требования и ограничения
Решения задач оформить в виде функций, возвращающих ответы. Для решения первой задачи использовать itertools.
Для справки
- Itertools в Python - Хабр
- itertools — Functions creating iterators for efficient looping
- Итерируем правильно: 20 приемов использования в Python модуля itertools
Варианты заданий
Тимофей составляет 5-буквенные коды из букв Т, И, М, О, Ф, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой И. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Тимофей?
Сколько единиц содержится в двоичной записи значения выражения \( 4 ^ {2020} + 2 ^ {2017} − 15 \)?
Найдите среди целых чисел, принадлежащих числовому отрезку \( [174457; 174505] \), числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя в два соседних столбца на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке также должны следовать в порядке возрастания. Например, в диапазоне \( [5; 9] \) ровно два различных натуральных делителя имеют числа 6 и 8, поэтому для этого диапазона вывод на экран должен содержать следующие значения:
2 3 2 4
Ольга составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Ольга использует 4-буквенные слова, в которых есть только буквы A, B, C, D, X, Y, Z. При этом первая буква кодового слова — это буква X, Y или Z, а далее в кодовом слове буквы X, Y и Z не встречаются. Сколько различных кодовых слов может использовать Ольга?
Значение арифметического выражения \( 9 ^ 8 + 3 ^ 5 − 9 \) записали в системе счисления с основанием 3. Сколько цифр 2 содержится в этой записи?
Найдите все натуральные числа, принадлежащие отрезку \( [45 000 000; 50 000 000] \), у которых ровно пять различных нечётных делителей (количество чётных делителей может быть любым). Выведите найденные числа в порядке возрастания.
Андрей составляет 6-буквенные коды из букв А, Н, Д, Р, Е, Й. Буква Й может использоваться в коде не более одного раза, при этом она не может стоять на первом месте, на последнем месте и рядом с буквой Е. Все остальные буквы могут встречаться произвольное количество раз или не встречаться совсем. Сколько различных кодов может составить Андрей?
Сколько единиц содержится в двоичной записи значения выражения \( 8^{2020} + 4^{2017} + 26 − 1 \)?
Найдите среди целых чисел, принадлежащих числовому отрезку \( [245 690; 245 756] \) простые числа. Выведите на экран все найденные простые числа в порядке возрастания, слева от каждого числа выведите его порядковый номер в последовательности. Каждая пара чисел должна быть выведена в отдельной строке. Например, в диапазоне \( [5; 9] \) ровно два различных натуральных простых числа — это числа 5 и 7, поэтому для этого диапазона вывод на экран должен содержать следующие значения:
1 5 3 7
Настя составляет 6-буквенные коды из букв Н, А, С, Т, Я. Каждая допустимая гласная буква может входить в код не более одного раза. Сколько кодов может составить Настя?
Значение арифметического выражения \( 16^{18} · 4^{10} − 46 − 16 \) записали в системе счисления с основанием 4. Сколько цифр 3 содержится в этой записи?
Пусть \(M\) — сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение M равным нулю. Найдите целые числа, большие 452 021, в порядке возрастания, такие, для которых значение \(M\) при делении на 7 даёт в остатке 3. Вывести первые 5 найденных чисел и соответствующие им значения \(M\).
Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем — значение \(M\). Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 20: \( M = 2 + 10 = 12 \), остаток при делении на 7 не равен 3; для числа 21: \( M = 3 + 7 = 10 \), остаток при делении на 7 равен 3.
Вася составляет 6-буквенные слова, в которых могут быть использованы только буквы В, И, Ш, Н, Я, причём буква В используется не более одного раза. Каждая из других допустимых букв может встречаться в слове любое количество раз или не встречаться совсем. Слово не должно начинаться с буквы Ш и оканчиваться гласными буквами. Словом считается любая допустимая последовательность букв, не обязательно осмысленная. Сколько существует таких слов, которые может написать Вася?
Сколько единиц содержится в двоичной записи значения выражения \( 4^{2014} + 2^{2015} − 8 \)?
Найдите все натуральные числа \(N\), принадлежащие отрезку \( [400 000 000; 600 000 000] \), которые можно представить в виде \( N = 2^m · 3^n \), где \( m \) — чётное число, \( n \) — нечётное число. Выведите все найденные числа в порядке возрастания.
Ученица составляет 5-буквенные слова из букв ГЕПАРД. При этом в каждом слове ровно одна буква Г, слово не может начинаться на букву А и заканчиваться буквой Е. Какое количество слов может составить ученица?
Значение выражения \( 5^{36} + 5^{24} − 25 \) записали в системе счисления с основанием 5. Сколько цифр 4 содержится в этой записи?
Найдите 5 чисел больших 500000, таких, что среди их делителей есть число, оканчивающееся на 8, при этом этот делитель не равен 8 и самому числу. В качестве ответа приведите 5 наименьших чисел, соответствующих условию.
Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем минимальный делитель, оканчивающийся на 8, не равный 8 и самому числу.
Иван составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Иван использует все пятибуквенные слова в алфавите {A, B, C, D, E}, удовлетворяющие такому условию: кодовое слово не может начинаться с буквы E и заканчиваться буквой A. Сколько различных кодовых слов может использовать Иван?
Сколько единиц содержится в двоичной записи значения выражения: \( 4^{511} + 2^{511} − 511 \)?
Пусть \( M(N) \) — произведение 5 наименьших различных натуральных делителей натурального числа \( N \), не считая единицы. Если у числа \( N \) меньше 5 таких делителей, то \( M(N) \) считается равным нулю.
Найдите 5 наименьших натуральных чисел, превышающих 200 000 000, для которых \( 0 < M(N) < N \). В ответе запишите найденные значения \( M(N) \) в порядке возрастания соответствующих им чисел \( N \).
Рассматриваются символьные последовательности длины 6 в пятибуквенном алфавите {К, А, Т, Е, Р}. Сколько существует таких последовательностей, которые начинаются с буквы Р и заканчиваются буквой К?
Значение выражения \( 216^6 + 216^4 + 36^6 − 6^{14} − 24 \) записали в системе счисления с основанием 6. Сколько различных цифр содержит эта запись?
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
символ
?
означает ровно одну произвольную цифру;символ
*
означает любую последовательность цифр произвольной длины; в том числе*
может задавать и пустую последовательность.
Например, маске
123*4?5
соответствуют числа 123405 и 12365485.Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске
12345?7?8
, делящиеся на число 23 без остатка.Запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел на 23.
Олег составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Олег использует 4-буквенные слова, в которых есть только буквы A, B, C, D, E, X, Z, причём буквы X и Z встречаются только на двух первых позициях, а буквы A, B, C, D, E — только на двух последних. Сколько различных кодовых слов может использовать Олег?
Значение арифметического выражения \( 49^{10} + 7^{30} – 49 \) записали в системе счисления с основанием 7. Сколько цифр 6 содержится в этой записи?
Найдите среди целых чисел, принадлежащих числовому отрезку \( [312614; 312651] \), числа, имеющие ровно шесть различных натуральных делителей. Для каждого найденного числа запишите эти шесть делителей в шесть соседних столбцов на экране с новой строки. Делители в строке должны следовать в порядке возрастания.
Например, в диапазоне \( [12; 15] \) ровно шесть различных натуральных делителей имеет число 12, поэтому для этого диапазона вывод на экране должна содержать следующие значения:
1 2 3 4 6 12
Иван составляет 5-буквенные коды из букв И, В, А, Н. Буквы в коде могут повторяться, использовать все буквы не обязательно, но букву И нужно использовать хотя бы один раз. Сколько различных кодов может составить Иван?
Значение арифметического выражения \( 7 · 512^{120} − 6 · 64^{100} + 8^{210} − 255 \) записали в системе счисления с основанием 8. Сколько цифр 0 содержится в этой записи?
Найдите среди целых чисел, принадлежащих числовому отрезку [84052; 84130], число, имеющее максимальное количество различных натуральных делителей, если таких чисел несколько — найдите минимальное из них. Выведите на экран количество делителей такого числа и само число.
Например, в диапазоне [2; 48] максимальное количество различных натуральных делителей имеет число 48, поэтому для этого диапазона вывод на экране должна содержать следующие значения:
10 48
Найдите количество пятизначных восьмеричных чисел, в которых все цифры различны и никакие две четные или нечетные не стоят рядом.
Значение выражения \( 81^{17} + 3^{24} − 45 \) записали в системе счисления с основанием 9. Сколько цифр 8 содержится в этой записи?
Назовём нетривиальным делителем натурального числа его делитель, не равный единице и самому числу. Например, у числа 6 есть два нетривиальных делителя: 2 и 3. Найдите все натуральные числа, принадлежащие отрезку \( [123 456 789; 223 456 789] \) и имеющие ровно три нетривиальных делителя. Для каждого найденного числа выведите его наибольший нетривиальный делитель. Ответы расположите в порядке возрастания.
Например, в диапазоне \( [5; 16] \) ровно три различных нетривиальных делителя имеет число 16, поэтому для этого диапазона вывод на экран должен содержать следующие значения:
16 8
Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует трёхбуквенные слова, в которых могут быть только буквы Ш, К, О, Л, А, причём буква К появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?
Значение арифметического выражения \( 3 · 4^{38} + 2 · 4^{23} + 4^{20} + 3 · 4^5 + 2 · 4^4 + 1 \) записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?
Напишите программу, которая перебирает целые числа, большие 600 000, в порядке возрастания и ищет среди них такие, среди делителей которых есть хотя бы одно число, оканчивающееся на 7, но не равное 7 и самому числу. Необходимо вывести первые 5 таких чисел, и наименьший делитель, оканчивающийся на 7, не равный 7 и самому числу.
Формат вывода: для каждого из 5 таких найденных чисел в отдельной строке сначала выводится само число, затем — наименьший делитель, оканчивающийся на 7, не равный 7 и самому числу. Строки выводятся в порядке возрастания найденных чисел.