Sua tarefa é converter um número suave de 103 em uma palavra em inglês, usando o método descrito abaixo.
Quão?
- Gere a lista de fatores primos (com repetição) do número de entrada.
- Classifique a lista:
- Se 2 não for um dos fatores principais, classifique a lista em ordem crescente.
- Se 2 for um dos fatores primos, remova-o da lista e classifique os demais fatores em ordem decrescente.
Traduza cada fator em uma letra, usando a seguinte tabela:
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 tabela foi construída empiricamente para maximizar o número de palavras possíveis. Para os curiosos, aqui está uma lista de 2.187 palavras que podem ser codificadas dessa maneira (podem incluir linguagem rude). Definitivamente, não é garantido que seja o ideal, mas é bom o suficiente para esse desafio.
Exemplos
Exemplo 1: 579085261 (ordem crescente)
- Os fatores primos são [37, 47, 53, 61, 103] .
- 2 não é um fator primordial, por isso mantemos a lista classificada em ordem crescente.
- 37 = C, 47 = R, etc. A saída é "LOUCA".
Exemplo 2: 725582 (ordem decrescente)
- Os principais fatores são [2, 11, 13, 43, 59] .
- 2 é um fator primordial, portanto, nós o removemos e classificamos a lista em ordem decrescente, o que indica:
[59, 43, 13, 11] . - 59 = G, 43 = O, etc. A saída é "GOLF".
Exemplo 3: 10757494 (com um fator repetido)
- Os fatores primos são [2, 11, 71, 71, 97] .
- 2 é um fator primordial, portanto, nós o removemos e ordenamos a lista em ordem decrescente, o que fornece:
[97, 71, 71, 11] . - 97 = B, 71 = E, 11 = F. A saída é "BEEF".
Esclarecimentos e regras
- É garantido que o número de entrada seja 103 suave e divisível por 2 no máximo uma vez.
- Por definição, um número suave é um número inteiro positivo .
- A entrada e a saída podem ser manipuladas em qualquer formato razoável. A saída pode estar em minúscula ou maiúscula. O espaço em branco à direita é aceitável. Os principais espaços em branco não são.
- Se o seu programa / função não suportar entradas grandes, especifique-o na sua resposta.
- Isso é código de golfe, então a resposta mais curta em bytes vence.
Casos de teste
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
... o resultado é PIRATE MAZE
, ou DOOM VACUUMS
...
Ò
em579085261
, sentir como <s> Emigna </ s> Adnan já começou.