Votre tâche consiste à traduire un nombre lisse-103 en un mot anglais, en utilisant la méthode décrite ci-dessous.
Comment?
- Générez la liste des facteurs premiers (avec répétition) du nombre saisi.
- Trier la liste:
- Si 2 n'est pas l'un des facteurs premiers, triez la liste par ordre croissant.
- Si 2 est l'un des facteurs premiers, supprimez-le de la liste et triez les facteurs restants par ordre décroissant.
Traduisez chaque facteur dans une lettre, en utilisant le tableau suivant:
3 = S 13 = L 29 = X 43 = O 61 = Z 79 = H 101 = K 5 = P 17 = Q 31 = N 47 = R 67 = T 83 = V 103 = Y 7 = M 19 = U 37 = C 53 = A 71 = E 89 = D 11 = F 23 = I 41 = W 59 = G 73 = J 97 = B
Remarque : Ce tableau a été construit de manière empirique afin de maximiser le nombre de mots possibles. Pour les plus curieux, voici une liste de 2 187 mots qui peuvent être encodés de cette façon (peuvent inclure un langage grossier). Ce n'est certainement pas garanti d'être optimal, mais c'est assez bon pour ce défi.
Exemples
Exemple 1: 579085261 (ordre croissant)
- Les facteurs premiers sont [37, 47, 53, 61, 103] .
- 2 n'est pas un facteur premier, nous conservons donc la liste triée par ordre croissant.
- 37 = C, 47 = R, etc. La sortie est "CRAZY".
Exemple 2: 725582 (ordre décroissant)
- Les facteurs premiers sont [2, 11, 13, 43, 59] .
- 2 est un facteur premier, nous le supprimons et trions la liste par ordre décroissant, ce qui donne:
[59, 43, 13, 11] . - 59 = G, 43 = O, etc. La sortie est "GOLF".
Exemple 3: 10757494 (avec un facteur répété)
- Les facteurs premiers sont [2, 11, 71, 71, 97] .
- 2 est un facteur premier, nous le supprimons et trions la liste par ordre décroissant, ce qui donne:
[97, 71, 71, 11] . - 97 = B, 71 = E, 11 = F. La sortie est "BEEF".
Clarifications et règles
- Il est garanti que le numéro d’entrée est lisse et divisible par 2 au maximum une fois.
- Par définition, un nombre entier est un entier positif .
- L'entrée et la sortie peuvent être traitées dans n'importe quel format raisonnable. La sortie peut être en minuscule ou en majuscule. Les espaces de fin sont acceptables. Les espaces blancs ne sont pas.
- Si votre programme / fonction ne peut pas prendre en charge de grandes entrées, veuillez le spécifier dans votre réponse.
- C'est le code golf, donc la réponse la plus courte en octets est gagnante.
Cas de test
34874 --> ARM
483254 --> BAR
353722 --> EAR
494302 --> EGG
39061 --> FAT
6479 --> FUN
60421 --> ICE
54166 --> JAM
48911474 --> BETA
2510942 --> BOOM
2303854 --> DOOM
844261 --> FIRE
1606801 --> MAZE
1110085 --> PAGE
5212974 --> BALLS
67892046 --> BEANS
885396199 --> CREEK
67401037 --> FUNKY
27762173 --> QUICK
1238440506 --> ARROWS
33045832681 --> CRAGGY
1362714005 --> PIRATE
137302698 --> TROLLS
358310128062 --> BEGGARS
40255151586 --> DETAILS
164633248153 --> FIXATED
621172442227 --> UNRATED
2467812606 --> VACUUMS
86385078330 --> GROWNUPS
26607531423091 --> UNWORTHY
<=103
... votre résultat est PIRATE MAZE
, ou DOOM VACUUMS
...
Ò
sur579085261
, se sent comme <s> Emigna </ s> Adnan a déjà commencé.