Описанный сортировки чисел схож с алфавитной сортировкой строк за тем исключением, что разряды в числе располагаются справа налево, а не наоборот.
Для уменьшения количества вычислений сведем задачу к алфавитной сортировке, которую можно произвести встроенными в функцию sorted() алгоритмами. Для этого воспользуемся параметром оной функции key, этот параметр принимает функцию, через которую проходят все сортируемые значения перед сравнением. В этой функции приведем число к строке и запишем в обратном порядке.
Таким образом, алфавитная сортировка даст нам требуемый результат.
Объяснение:
Напишите программу, которая в последовательности целых чисел определяет, каких чисел больше - чётных или оканчивающихся на 3 - и на сколько. Программа получает на вход целые числа, количество введённых чисел неизвестно, последовательность чисел заканчивается числом 0 (0 - признак окончания ввода, не входит в последовательность). Количество чисел не превышает 1000. Введённые числа по модулю не превышают 30000. Программа должна вывести сообщение и одно число: каких чисел больше - чётных или оканчивающихся на 3 - на сколько, а если количество чисел одинаково, то вывести это количество.
Пример работы программы:
Входные данные:
182
13
12
8
0
Выходные данные
Чётных больше на 2 числа
0
Поделитесь своими знаниями, ответьте на вопрос:
Четырехразрядное число по условиям задания (1) и (2) имеет вид aabb,
где a=1,2,...5, b=0,1,...5.
В развернутой записи число имеет вид
a×6³+a×6²+b×6+b×1 = 6²×a(6+1)+b(6+1) = 7(36a+b)
При этом по условию (3) можно записать, что k² = 7(36a+b)
Чтобы число 7(36a+b) было полным квадратом, 36a+b должно быть кратно 7, а остаток от деления (36a+b) на 7 также должен быть полным квадратом.
Получаем, что 36a+b = 7m²
Минимальное значение 36a+b равно 36×1+0 = 36, следовательно m>2 (при m=2 получим 7×4=28, что меньше 36).
При m=3 получаем 36a+b = 63 и при a∈[1;5], b∉[0;5] решений нет.
При m=4 получаем 36a+b = 112 и находим a=3, b=4 - есть решение!
При m=5 получаем 36a+b = 175 и при a∈[1;5], b∉[0;5] решений нет.
При m=6 получаем 36a+b = 175 и получаем, что a=7, а это недопустимо. Дальше смысла проверять нет.
Итак, a=3, b=4, число 3344₆ = 7×(36×3+4) = 784₁₀ = 28²
ответ: 3344