Voici une séquence intéressante découverte par Paul Loomis, mathématicien à l'Université de Bloomsburg. De sa page sur cette séquence:
Définissez
f(n) = f(n-1) + (the product of the nonzero digits of f(n-1))
f(0) = x
, avec x
comme tout entier positif, écrit en base 10.
Donc, en commençant par f(0)=1
, vous obtenez la séquence suivante
1, 2, 4, 8, 16, 22, 26, 38, 62, 74, 102, 104, ...
Jusqu'à présent, si standard. La propriété intéressante entre en jeu lorsque vous prenez n'importe quel autre entier comme point de départ, finalement la séquence converge en un point le long de la x=1
séquence ci-dessus . Par exemple, en commençant par les x=3
rendements
3, 6, 12, 14, 18, 26, 38, 62, 74, 102, ...
Voici quelques séquences supplémentaires, chacune affichée uniquement jusqu'à ce qu'elles atteignent 102
:
5, 10, 11, 12, 14, 18, 26, 38, 62, 74, 102, ...
7, 14, 18, 26, 38, 62, 74, 102, ...
9, 18, 26, 38, 62, 74, 102, ...
13, 16, 22, 26, 38, 62, 74, 102, ...
15, 20, 22, 26, 38, 62, 74, 102, ...
17, 24, 32, 38, 62, 74, 102, ...
19, 28, 44, 60, 66, 102, ...
Il a conjecturé, et prouvé empiriquement jusqu'à x=1,000,000
, que cette propriété (c'est-à-dire que tous les nombres d'entrée convergent vers la même séquence) est vraie.
Le défi
Étant donné un entier positif 0 < x < 1,000,000
, affichez le nombre où la f(x)
séquence converge vers la f(1)
séquence. Par exemple, pour x=5
, ce serait 26
, puisque c'est le premier nombre commun aux deux séquences.
x output
1 1
5 26
19 102
63 150056
Règles
- Le cas échéant, vous pouvez supposer que l'entrée / sortie s'adaptera au type Integer natif de votre langue.
- L'entrée et la sortie peuvent être fournies par n'importe quelle méthode pratique .
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
la source
Gelée ,
1814 octetsL'entrée est un tableau singleton.
Essayez-le en ligne!
Comment ça marche
la source
Python 2 ,
1119593 octetsUtilisation du déballage
replace(*'01')
comme dans @Rod answer-18 octets grâce à @Lynn
Essayez-le en ligne!
la source
while cmp(*l)
aussi!Haskell , 65 octets
Essayez-le en ligne!
la source
Python 2 , 78 octets
Essayez-le en ligne!
la source
Husk , 13 octets
Prend l'entrée en tant que liste singleton.
Essayez-le en ligne!
Explication
la source
Python 3 ,
126125 octetsEssayez-le en ligne!
Prenez l'entrée comme chaîne
la source
Java (JDK 10) , 99 octets
Essayez-le en ligne!
Principalement un port itératif de la réponse JavaScript d' Arnauld , alors allez le voter!
la source
Gelée , 23 octets
Essayez-le en ligne!
la source
J , 50 octets
définition de la fonction de style tacite
si l'argument (disons 63) était collé dans une expression REPL, cela pourrait être 45 par exemple
,&1
ajouter 1 pour générer la séquence de recherche ainsi que la séquence d'argument^:(<453)"0
itère chacun jusqu'à ce que 1 million soit atteint dans la séquence de 1+ [: */@(*#]) (#~10)&#:
la fourchette s'ajoute au crochet qui fait le produit des chiffres(e.~ # ])/
utilise l'élément répété s'il existe pour obtenir l'intersection des listes{.
ne renvoie que la première valeur communeEssayez-le en ligne!
la source
R ,
11086 octetsTIO
version précédente 110:
TIO
la source