Su tarea es traducir un número liso 103 a una palabra en inglés, utilizando el método que se describe a continuación.
¿Cómo?
- Genere la lista de factores primos (con repetición) del número de entrada.
- Ordenar la lista:
- Si 2 no es uno de los factores primos, ordene la lista en orden ascendente.
- Si 2 es uno de los factores primos, elimínelo de la lista y ordene los factores restantes en orden descendente.
Traduzca cada factor a una letra, usando la siguiente tabla:
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
Nota : Esta tabla fue construida empíricamente para maximizar el número de palabras posibles. Para los curiosos, aquí hay una lista de 2,187 palabras que pueden codificarse de esa manera (puede incluir lenguaje grosero). Definitivamente no se garantiza que sea óptimo, pero es lo suficientemente bueno para este desafío.
Ejemplos
Ejemplo 1: 579085261 (orden ascendente)
- Los factores primos son [37, 47, 53, 61, 103] .
- 2 no es un factor primo, por lo que mantenemos la lista ordenada en orden ascendente.
- 37 = C, 47 = R, etc. La salida es "CRAZY".
Ejemplo 2: 725582 (orden descendente)
- Los factores primos son [2, 11, 13, 43, 59] .
- 2 es un factor primo, por lo que lo eliminamos y ordenamos la lista en orden descendente, lo que da:
[59, 43, 13, 11] . - 59 = G, 43 = O, etc. La salida es "GOLF".
Ejemplo 3: 10757494 (con un factor repetido)
- Los factores primos son [2, 11, 71, 71, 97] .
- 2 es un factor primo, por lo que lo eliminamos y ordenamos la lista en orden descendente, lo que da:
[97, 71, 71, 11] . - 97 = B, 71 = E, 11 = F. La salida es "BEEF".
Aclaraciones y reglas.
- Se garantiza que el número de entrada será 103-suave y divisible por 2 como máximo una vez.
- Por definición, un número liso es un entero positivo .
- La entrada y salida se pueden manejar en cualquier formato razonable. La salida puede estar en minúsculas o mayúsculas. El espacio en blanco al final es aceptable. El espacio en blanco principal no lo es.
- Si su programa / función no puede admitir entradas grandes, especifíquelo en su respuesta.
- Este es el código de golf, por lo que gana la respuesta más corta en bytes.
Casos de prueba
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
... tu resultado es PIRATE MAZE
, o DOOM VACUUMS
...
Ò
en579085261
, siente como <s> Emigna </ s> Adnan ya ha comenzado.