Definição
Se você pegar a sequência de quadrados inteiros positivos e concatená-los em uma sequência de dígitos (ou seja 149162536496481100...
), um quadrado "madrugador" é aquele que pode ser encontrado nessa sequência antes de sua posição natural.
Por exemplo, 7 2 (o número 49
), pode ser encontrado com um deslocamento de 2 na sequência, embora a posição natural esteja no deslocamento 10. Portanto, 7 é o primeiro quadrado "madrugador".
Observe que, para ser considerado um quadrado "madrugador", todos os dígitos do quadrado devem ocorrer antes do início da posição natural. Uma partida que se sobreponha parcialmente à posição natural não conta.
a(n)
é o inteiro enésimo k positivo tal que k 2 é um quadrado "madrugador".
Tarefa
Dado um número inteiro positivo n
, output a(n)
.
Você pode usar a indexação com base em 1 ou em 0, mas se você usar a indexação com base em 0, diga-o em sua resposta.
Sua solução deve ser capaz de lidar com pelo menos o máximo de a(53)
(ou se você estiver usando a indexação baseada em 0 a(52)
).
Casos de teste
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
elementos da sequência pode ser aceita? Cabe ao OP, mas muitas pessoas optam por permitir isso.a(n)
.Respostas:
05AB1E ,
109 bytesGuardado 1 byte graças a Adnan .
Experimente online!
Explicação
fonte
½
que será adicionado automaticamente ao loop quando estiver ausente.JavaScript (ES6),
514945 bytes1 indexado.
Demo
Mostrar snippet de código
Formatado e comentado
Versão não recursiva, 53 bytes
Este não depende do tamanho da pilha do seu mecanismo.
Experimente online!
fonte
Pitão , 12 bytes
Experimente aqui!
Como funciona
fonte
Perl 5 , 34 bytes
Código de 33 bytes + 1 para
-p
.Experimente online!
fonte
APL (Dyalog) ,
5342 bytesExperimente online!
Quão?
⍷
- encontre ocorrências de⍕×⍨⍵+1
- quadrado stringificado dex+1
no⍕×⍨⍳⍵
- intervalo de quadrados estritox
' '~⍨
- sem espaços+/
- soma0<
- se a soma for positiva (existem ocorrências), ela retornaráx+1
, caso contrário,∇⍵+1
- recursar comx+1
.⍣⍵
- aplicarn
horários.fonte
Haskell , 73 bytes
Experimente online! Indexado a zero.
Explicação
Auxiliares:
Função principal:
fonte
Geléia ,
1311 bytesExperimente online!
Como alternativa, esta é uma solução de 10 bytes que imprime os
n
primeiros valores da sequência: Experimente online!fonte
nfind
coisinha: (((Python 2 ,
6261 bytesExperimente online!
fonte
Gelatina , 11 bytes
Experimente online!
Uma alternativa à solução user202729 .
Como funciona
fonte
ẇ
tem stringificação automática.Alice , 32 bytes
Experimente online!
O layout desnecessário desse trecho do modo Ordinal está realmente me incomodando, mas tudo o que tento salvar alguns bytes sai por mais tempo ...
Explicação
Apenas a estrutura de E / S decimal usual, com
o
e@
em posições um pouco incomuns. A carne do programa é esta:fonte
F
vez dez
), mas a manipulação da pilha não será mais simples, possivelmente até um ou dois comandos piores.Casca , 13 bytes
Experimente online!
Explicação
A segunda linha é uma função auxiliar que nos fornece os dígitos decimais do quadrado de um número:
Podemos chamar esta função no programa principal usando
₁
.fonte
Kotlin , 79 bytes
Experimente online!
fonte
Wolfram Language (Mathematica) , 75 bytes
Experimente online!
Como funciona
n
mantém o número de madrugadores encontrados até agora,k
o último número verificado,s
a sequência"1491625..."
. Emboran
seja muito pequeno, ses
contiver o próximo quadrado, outro pássaro madrugador foi encontrado, portanto aumentamosn
. De qualquer forma, estendemoss
.Uma vez que
n
atinge a entrada#
, voltamosk
, o último número marcado e, portanto, o último madrugador encontrados.No meu laptop, leva cerca de 53 segundos para calcular o 53º termo da sequência.
fonte
REXX , 66 bytes
Experimente online!
fonte
Bash,
7669 bytesSuponha que
n
é dado em variável (ien=10 foo.sh
). Usa pacotegrep
. Qualquer valor do meio é gerado (se permitido, -3 bytes).Como funciona?
fonte