Сегодня, когда я пишу это, 31 марта. В США это так 3/31
. Я играл с 331
числом, чтобы придумать вызов, и обнаружил, что его остатки (по модулю малых чисел) являются палиндромными. 331%2=1, 331%3=1, 331%4=3, 331%5=1, 331%6=1
( 11311
).
Ваша задача здесь состоит в том, чтобы при получении целого числа n > 2
вывести первые n
положительные числа, имеющие палиндромный остаток, когда взяты по модулю [2,n]
.
Например, для ввода 7
, вывод должен быть 1, 42, 43, 140, 182, 420, 421
. Вот диаграмма, объясняющая, почему это так:
mod
num | 2 3 4 5 6 7
-----------------
1 | 1 1 1 1 1 1
42 | 0 0 2 2 0 0
43 | 1 1 3 3 1 1
140 | 0 2 0 0 2 0
182 | 0 2 2 2 2 0
420 | 0 0 0 0 0 0
421 | 1 1 1 1 1 1
вход
Один положительное целое число n
с n > 2
в любом удобном формате .
Выход
Результирующий массив / список первых n
палиндромных остатков, как указано выше. Опять же в любом подходящем формате.
правила
- Для
n > 10
, предположим , что остаток список уплощенная перед проверкой , является ли она палиндромом. То есть[1, 10, 11]
палиндромно, но[1, 10, 1]
нет. - Допустимы либо полная программа, либо функция. Если функция, вы можете вернуть вывод, а не распечатать его.
- Если возможно, укажите ссылку на среду онлайн-тестирования, чтобы другие люди могли опробовать ваш код!
- Стандартные лазейки запрещены.
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах).
Примеры
[input]
[output]
3
[1, 6, 7]
4
[1, 4, 5, 8]
5
[1, 50, 60, 61, 110]
6
[1, 30, 31, 60, 61, 90]
7
[1, 42, 43, 140, 182, 420, 421]
8
[1, 168, 169, 336, 337, 504, 505, 672]
9
[1, 2520, 2521, 5040, 5041, 7560, 7561, 10080, 10081]
10
[1, 280, 281, 560, 1611, 1890, 1891, 2170, 2171, 2241]
11
[1, 22682, 27720, 27721, 50402, 55440, 55441, 78122, 83160, 83161, 105842]
code-golf
math
number-theory
palindrome
AdmBorkBork
источник
источник
n
элементы.[1, 10, 11]
палиндромный, но[1, 10, 1]
не так" кажется математически неправильным.Ответы:
Haskell, 57 байт
Пример использования:
f 4
->[1,4,5,8]
. Попробуйте онлайн!Первый
=<<
находится в контексте функции и переводится в лямбду,\x -> reverse x == x
а второй=<<
находится в контексте списка и эквивалентенconcatMap
, то есть map-and-flatten-one-list-level.источник
05AB1E , 12 байтов
Попробуйте онлайн!
объяснение
источник
Mathematica, 79 байтов
источник
JavaScript (ES6), 104 байта
демонстрация
NB . Из-за многочисленных рекурсивных вызовов это приведет к сбою при n> 8 в Firefox или n> 10 в Chrome.
Показать фрагмент кода
источник
Python 2,
9897 байтПопробуйте онлайн!
источник
12
из-за странного правила,[1, 10, 11]
которое считается палиндромомMATL , 19 байт
Спасибо @AdmBorkBork за указание на ошибку в более ранней версии кода, теперь исправлена
Попробуйте онлайн!
объяснение
источник
Scala,
908682 байтаобъяснение
Контрольные примеры
Полученные результаты
Правки
# 1 (90 => 86)
№ 2 (86 => 82)
(2 to n).map(%i)
=>(2 to n)map(%i)
источник
def f(n:Int)=
на(n:Int)=>
, так как он также определяет функцию (но без имени). Это экономит 4 байта!Желе , 12 байт
Как?
Попробуйте онлайн!
источник
CJam , 28 байтов
Попробуйте онлайн!
объяснение
источник
PHP, 93 байта
Онлайн версия 2 выводит циклы в виде строки
расширенный
PHP 130 байт
Онлайн версия 2 петли
расширенный
PHP, 139 байт с 1 циклом
Онлайн версия 1 Loop
Бежать с
расширенный
источник
QBIC , 48 байтов
Бьет Mathematica! Образец прогона:
Объяснение:
источник
Japt , 26 байт
Попробуйте онлайн! Занимает несколько секунд на все входах, так что наберитесь терпения, пожалуйста.
Это было бы значительно короче (и быстрее), если бы была встроенная функция для получения первых N чисел, удовлетворяющих некоторому условию:
источник