Définition
Si vous prenez la séquence de carrés entiers positifs et les concaténez en une chaîne de chiffres (c.-à-d. 149162536496481100...
), Un carré «lève-tôt» est celui qui peut être trouvé dans cette chaîne avant sa position naturelle.
Par exemple, 7 2 (le nombre 49
), peut être trouvé à un décalage de 2 dans la chaîne, bien que la position naturelle soit au décalage 10. Ainsi 7 est le premier carré "early bird".
Notez que pour qu'il soit considéré comme un carré "lève-tôt", tous les chiffres du carré doivent apparaître avant le début de la position naturelle. Une correspondance qui chevauche partiellement la position naturelle ne compte pas.
a(n)
est le nième entier positif k tel que k 2 est un carré "early bird".
Tâche
Étant donné un entier positif n
, sortie a(n)
.
Vous pouvez utiliser une indexation basée sur 1 ou 0, mais si vous utilisez une indexation basée sur 0, veuillez le dire dans votre réponse.
Votre solution devrait être capable de gérer au moins aussi haut que a(53)
(ou si vous utilisez une indexation basée sur 0, a(52)
).
Cas de test
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
éléments de la séquence peut-elle être acceptée? C'est à OP mais beaucoup de gens choisissent de le permettre.a(n)
.Réponses:
05AB1E ,
109 octetsEnregistré 1 octet grâce à Adnan .
Essayez-le en ligne!
Explication
la source
½
car il sera automatiquement ajouté à la boucle en cas de manquant.JavaScript (ES6),
514945 octets1 indexé.
Démo
Afficher l'extrait de code
Formaté et commenté
Version non récursive, 53 octets
Celui-ci ne dépend pas de la taille de votre pile de moteur.
Essayez-le en ligne!
la source
Pyth , 12 octets
Essayez-le ici!
Comment ça fonctionne
la source
Perl 5 , 34 octets
Code de 33 octets + 1 pour
-p
.Essayez-le en ligne!
la source
APL (Dyalog) ,
5342 octetsEssayez-le en ligne!
Comment?
⍷
- trouver des occurrences de⍕×⍨⍵+1
- carré stratifié dex+1
dans le⍕×⍨⍳⍵
- gamme de carrés stratifiéx
' '~⍨
- sans espaces+/
- somme0<
- si la somme est positive (des occurrences existent), alors elle retournex+1
, sinon,∇⍵+1
- recurse avecx+1
.⍣⍵
- appliquer desn
temps.la source
Haskell , 73 octets
Essayez-le en ligne! Zéro indexé.
Explication
Auxiliaires:
Fonction principale:
la source
Gelée ,
1311 octetsEssayez-le en ligne!
Il s'agit également d'une solution de 10 octets qui imprime les
n
premières valeurs de la séquence: Essayez-la en ligne!la source
nfind
truc: (((Python 2 ,
6261 octetsEssayez-le en ligne!
la source
Gelée , 11 octets
Essayez-le en ligne!
Une alternative à la solution user202729 .
Comment ça fonctionne
la source
ẇ
a une stringification automatique.Alice , 32 octets
Essayez-le en ligne!
La disposition inutile de ce tronçon du mode Ordinal me dérange vraiment, mais tout ce que j'essaie d'économiser quelques octets sort plus longtemps ...
Explication
Juste le cadre d'E / S décimal habituel, avec
o
et@
dans des positions légèrement inhabituelles. La viande du programme est la suivante:la source
F
au lieu dez
), mais la manipulation de la pile ne sera pas plus simple, peut-être même pire qu'une ou deux commandes.Husk , 13 octets
Essayez-le en ligne!
Explication
La deuxième ligne est une fonction d'aide qui nous donne les chiffres décimaux du carré d'un nombre:
Nous pouvons invoquer cette fonction sur le programme principal en utilisant
₁
.la source
Kotlin , 79 octets
Essayez-le en ligne!
la source
Wolfram Language (Mathematica) , 75 octets
Essayez-le en ligne!
Comment ça fonctionne
n
conserve le nombre de lève-tôt trouvés jusqu'à présent,k
le dernier numéro vérifié,s
la chaîne"1491625..."
. Bien qu'iln
soit trop petit, s'ils
contient le carré suivant, un autre lève-tôt a été trouvé, alors nous incrémentonsn
. Dans tous les cas, nous étendonss
.Une fois
n
atteint l'entrée#
, nous revenonsk
, le dernier numéro vérifié et donc le dernier lève-tôt trouvé.Sur mon ordinateur portable, il faut environ 53 secondes pour calculer le 53e terme de la séquence.
la source
REXX , 66 octets
Essayez-le en ligne!
la source
Bash,
7669 octetsSupposons
n
que la variable soit donnée (ien=10 foo.sh
). Utilise le packagegrep
. Toute valeur intermédiaire est sortie (si elle est autorisée, -3 octets).Comment ça marche?
la source