Definición
Si toma la secuencia de cuadrados enteros positivos y los concatena en una cadena de dígitos (es decir 149162536496481100...), un cuadrado "temprano" es uno que se puede encontrar en esta cadena antes de su posición natural.
Por ejemplo, 7 2 (el número 49), se puede encontrar en un desplazamiento de 2 en la cadena, aunque la posición natural está en el desplazamiento 10. Por lo tanto, 7 es el primer cuadrado "anticipado".
Tenga en cuenta que para que se considere un cuadrado "anticipado", todos los dígitos en el cuadrado deben aparecer antes del comienzo de la posición natural. Un partido que se superpone parcialmente a la posición natural no cuenta.
a(n)es el enésimo número entero positivo k tal que k 2 es un cuadrado "madrugador".
Tarea
Dado un entero positivo n, salida a(n).
Puede usar la indexación basada en 1 o en 0, pero si usa la indexación basada en 0, dígalo en su respuesta.
Su solución debería ser capaz de manejar al menos tan alto como a(53)(o si está utilizando indexación basada en 0 a(52)).
Casos de prueba
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

npuede aceptar la salida de los primeros elementos de la secuencia? Depende de OP, pero muchas personas optan por permitir eso.a(n).Respuestas:
05AB1E ,
109 bytesGuardado 1 byte gracias a Adnan .
Pruébalo en línea!
Explicación
fuente
½que se agregará automáticamente al bucle cuando falte.JavaScript (ES6),
514945 bytes1 indexado.
Manifestación
Mostrar fragmento de código
Formateado y comentado
Versión no recursiva, 53 bytes.
Este no depende del tamaño de la pila del motor.
Pruébalo en línea!
fuente
Pyth , 12 bytes
Pruébalo aquí!
Cómo funciona
ef / jk ^ R2Z` * ~ Programa completo. Deje que Q sea nuestra entrada. .f ~ Q primeros enteros positivos con resultados verdaderos. Utiliza la variable Z. ^ R2Z ~ Cuadra cada número entero en el rango [0, Z). jk ~ Concatenar en una sola cadena. / ~ Contar las ocurrencias de ... `* ~ La representación de cadena de Z al cuadrado. Produce 0 si es falso y ≥ 1 si es verdadero. e ~ Obtener el último elemento (Qth entero verdadero). Salida implícita.fuente
Perl 5 , 34 bytes
Código de 33 bytes + 1 para
-p.Pruébalo en línea!
fuente
APL (Dyalog) ,
5342 bytesPruébalo en línea!
¿Cómo?
⍷- encontrar ocurrencias de⍕×⍨⍵+1- cuadrado de cadenax+1en el⍕×⍨⍳⍵- rango de cuadrados en cadenax' '~⍨- sin espacios+/suma0<- si la suma es positiva (existen ocurrencias), entonces devuelvex+1, de lo contrario,∇⍵+1- Recurrir conx+1.⍣⍵- Aplicarntiempos.fuente
Haskell , 73 bytes
Pruébalo en línea! Indexado a cero.
Explicación
Tropas auxiliares:
Función principal:
fuente
Jalea ,
1311 bytesPruébalo en línea!
Alternativamente, esta es una solución de 10 bytes que imprime los
nprimeros valores de la secuencia: ¡ Pruébelo en línea!fuente
nfindthingy: ((((Python 2 ,
6261 bytesPruébalo en línea!
fuente
Jalea , 11 bytes
Pruébalo en línea!
Una alternativa a la solución de user202729 .
Cómo funciona
fuente
ẇtiene stringificación automática.Alice , 32 bytes
Pruébalo en línea!
El diseño derrochador de ese tramo del modo Ordinal realmente me está molestando, pero todo lo que trato de guardar algunos bytes sale más tiempo ...
Explicación
Solo el marco de E / S decimal habitual, con
oy@en posiciones ligeramente inusuales. La carne del programa es esta:fuente
Flugar dez), pero la manipulación de la pila no será más simple, posiblemente incluso uno o dos comandos peores.Casco , 13 bytes
Pruébalo en línea!
Explicación
La segunda línea es una función auxiliar que nos da los dígitos decimales del cuadrado de un número:
Podemos invocar esta función en el programa principal usando
₁.fuente
Kotlin , 79 bytes
Pruébalo en línea!
fuente
Wolfram Language (Mathematica) , 75 bytes
Pruébalo en línea!
Cómo funciona
nmantiene el número de madrugadores encontrados hasta el momento,kel último número marcado,sla cadena"1491625...". Si biennes demasiado pequeño, siscontiene el siguiente cuadrado, se ha encontrado otro pájaro temprano, por lo que aumentamosn. En cualquier caso, nos extendemoss.Una vez que
nllega a la entrada#, regresamosk, el último número verificado y, por lo tanto, el último pájaro temprano encontrado.En mi computadora portátil, toma aproximadamente 53 segundos calcular el término 53 de la secuencia.
fuente
REXX , 66 bytes
Pruébalo en línea!
fuente
Bash,
7669 bytesAsumir
nse da en variable (es decirn=10 foo.sh). Utiliza paquetegrep. Se emite cualquier valor medio (si está permitido, -3 bytes).¿Como funciona?
fuente