Cela n'a aucun but pratique, mais cela pourrait être amusant de jouer au golf.
Défi
Étant donné un nombre n ,
- Comptez le nombre de chaque chiffre dans n et ajoutez 1 à chaque comptage
- Prenez la factorisation de n
- Compter la quantité de chaque chiffre dans la factorisation en nombres premiers de n , sans inclure les nombres premiers en double
- Créez une nouvelle liste en multipliant les éléments respectifs des listes des étapes 1 et 3
- Renvoie la somme de cette liste
Par exemple, 121 a deux 1
s et un 2
, vous obtiendrez donc la liste suivante à l'étape 1:
0 1 2 3 4 5 6 7 8 9
1 3 2 1 1 1 1 1 1 1
La décomposition en facteurs premiers de 121 est 11 2 , ce qui donne la liste suivante pour l'étape 3:
0 1 2 3 4 5 6 7 8 9
0 2 0 0 0 0 0 0 0 0
Notez comment nous n'avons pas compté l'exposant. Ceux-ci se multiplient pour obtenir:
0 1 2 3 4 5 6 7 8 9
0 6 0 0 0 0 0 0 0 0
Et la somme de cette liste est 6.
Cas de test
1 -> 0
2 -> 2
3 -> 2
4 -> 1
5 -> 2
10 -> 2
13 -> 4
121 -> 6
Remarques
- Les failles standard sont interdites.
- L'entrée et la sortie peuvent être dans n'importe quel format raisonnable.
- Vous devez laisser des uns (ou des zéros pour l'étape 3) dans la liste des chiffres qui n'apparaissent pas dans le numéro.
- Il s'agit de code-golf , donc la solution la plus courte en octets l'emporte.
232792560
->[2,1,4,2,1,2,2,2,1,2]
(étape 1);2*2*2*2*3*3*5*7*14*17*19
(étape 2); donc[0,5,1,2,0,1,0,2,0,1]
(étape 3); puis[0,5,4,4,0,2,0,4,0,2]
(étape 4); et devrait donc sortir21
.Réponses:
Gelée , 16 octets
Essayez-le en ligne!
Développé indépendamment de et pas exactement le même que l'autre solution Jelly .
Explication
Je vais utiliser
242
comme exemple d'entrée.la source
Gelée ,
1817 octets-1 octet grâce à caird coinheringaahing & H.PWiz (éviter d' appairer les deux vecteurs)
Un lien monadique prenant un entier positif et retournant un entier non négatif.
Essayez-le en ligne!
Comment?
la source
APL (Dyalog) ,
4341 octetsEssayez-le en ligne!
Comment?
r←⎕
- entrée dansr
3pco
- facteurs premiers∪
- unique⎕D,r
-r
ajouté avec0-9
⍕¨
- formater les facteurs et la plage pré-ajoutée⎕D∘.=
- comparaison cartésienne avec chaque élément de la chaîne0123456789
+/¨
- additionner chaque ligne des deux tables formées×/
- multiplier les deux vecteurs restants+/
- additionner le dernier vecteur forméla source
Pip , 44 octets
Prend l'entrée de l'argument de ligne de commande. Essayez-le en ligne!
la source
Python 2 ,
136127 octetsEssayez-le en ligne!
Crédits
la source
-~
j'étais toujours un peu confus là-dessus. Et je dois commencer à me souvenir de la<1
chose. Merci pour l'aide.-~
et d'autres choses connexes.