Определение
Если вы возьмете последовательность положительных целочисленных квадратов и объедините их в цепочку цифр (то есть 149162536496481100...
), квадрат «ранней пташки» - это тот, который можно найти в этой строке перед ее естественным положением.
Например, 7 2 (число 49
) можно найти со смещением 2 в строке, хотя естественная позиция находится со смещением 10. Таким образом, 7 - это первый квадрат «ранней пташки».
Обратите внимание, что для того, чтобы его считали квадратом «ранней пташки», все цифры в квадрате должны появляться до начала естественного положения. Совпадение, которое частично перекрывает естественную позицию, не считается.
a(n)
n-е положительное целое число k, такое что k 2 является квадратом "ранней пташки".
задача
Учитывая положительное целое число n
, выведите a(n)
.
Вы можете использовать индексацию на основе 1 или 0, но если вы используете индексацию на основе 0, укажите это в своем ответе.
Ваше решение должно быть в состоянии обрабатывать как минимум так же высоко a(53)
(или, если вы используете индексацию на основе 0, a(52)
).
Testcases
n a(n)
1 7
2 8
3 21
4 25
5 46
6 97
7 129
8 161
9 196
10 221
...
13 277
...
50 30015
51 35000
52 39250
53 46111
n
принять первые элементы последовательности? Это зависит от ОП, но многие люди хотят это позволить.a(n)
.Ответы:
05AB1E ,
109 байтовСохранено 1 байт благодаря Аднану .
Попробуйте онлайн!
объяснение
источник
½
как это будет автоматически добавлено в цикл при отсутствии.JavaScript (ES6),
514945 байт1-индексироваться.
демонстрация
Показать фрагмент кода
Отформатировано и прокомментировано
Нерекурсивная версия, 53 байта
Этот не зависит от вашего размера стека двигателя.
Попробуйте онлайн!
источник
Pyth , 12 байт
Попробуй это здесь!
Как это устроено
источник
Perl 5 , 34 байта
Код 33 байта + 1 для
-p
.Попробуйте онлайн!
источник
APL (Dyalog) ,
5342 байтаПопробуйте онлайн!
Как?
⍷
- найти вхождения⍕×⍨⍵+1
- Струнный квадратx+1
в⍕×⍨⍳⍵
- строковый диапазон квадратовx
' '~⍨
- без пробелов+/
- сумма0<
- если сумма положительная (вхождения существуют), то она возвращаетсяx+1
, в противном случае,∇⍵+1
- рекурсировать сx+1
.⍣⍵
- применитьn
раз.источник
Haskell , 73 байта
Попробуйте онлайн! Zero-индексироваться.
объяснение
вспомогательные вещества:
Основная функция:
источник
Желе ,
1311 байтПопробуйте онлайн!
В качестве альтернативы это 10-байтовое решение, которое печатает
n
первые значения последовательности: Попробуйте онлайн!источник
nfind
чтоли: (((Python 2 ,
6261 байтПопробуйте онлайн!
источник
Желе , 11 байт
Попробуйте онлайн!
Альтернатива решению пользователя 202729 .
Как это устроено
источник
ẇ
имеет автоматическое расслоение.Алиса , 32 байта
Попробуйте онлайн!
Расточительное расположение этого участка в режиме Ordinal действительно доставляет мне неприятности, но все, что я пытаюсь сохранить там в байтах, длится дольше ...
объяснение
Просто обычный десятичный каркас ввода-вывода, с
o
и@
в несколько необычных позициях. Мясо программы таково:источник
F
вместоz
), но манипулирование стеком не будет более простым, возможно даже одна или две команды хуже.Шелуха , 13 байт
Попробуйте онлайн!
объяснение
Вторая строка - вспомогательная функция, которая дает нам десятичные цифры квадрата числа:
Мы можем вызвать эту функцию в основной программе, используя
₁
.источник
Котлин , 79 байт
Попробуйте онлайн!
источник
Wolfram Language (Mathematica) , 75 байтов
Попробуйте онлайн!
Как это устроено
n
сохраняет количество найденных ранних пташек,k
последний проверенный номер,s
строку"1491625..."
. Покаn
он слишком мал, еслиs
содержит следующий квадрат, найдена еще одна ранняя пташка, поэтому мы увеличиваемn
. В любом случае мы расширяемs
.Достигнув
n
входа#
, мы возвращаемсяk
, последний проверенный номер и, следовательно, последняя найденная ранняя пташка.На моем ноутбуке требуется около 53 секунд, чтобы вычислить 53-й член последовательности.
источник
REXX , 66 байт
Попробуйте онлайн!
источник
Баш,
7669 байтПредположим
n
, дано в переменной (то естьn=10 foo.sh
). Использует пакетgrep
. Выводится любое среднее значение (если разрешено, -3 байта).Как это работает?
источник