Ваша задача - перевести 103-гладкое число в английское слово, используя метод, описанный ниже.
Как?
- Создайте список простых факторов (с повторением) входного числа.
- Сортировать список:
- Если 2 не является одним из основных факторов, отсортируйте список в порядке возрастания.
- Если 2 является одним из основных факторов, удалите его из списка и отсортируйте оставшиеся факторы в порядке убывания.
Переведите каждый фактор в букву, используя следующую таблицу:
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
Примечание : эта таблица была построена опытным путем, чтобы максимизировать количество возможных слов. Для любопытных, вот список 2187 слов, которые могут быть закодированы таким образом (может включать грубый язык). Это определенно не гарантировано, чтобы быть оптимальным, но это достаточно хорошо для этой задачи.
Примеры
Пример 1: 579085261 (по возрастанию)
- Основными факторами являются [37, 47, 53, 61, 103] .
- 2 не является основным фактором, поэтому мы сохраняем список отсортированным в порядке возрастания.
- 37 = C, 47 = R и т. Д. Выход «CRAZY».
Пример 2: 725582 (по убыванию)
- Основными факторами являются [2, 11, 13, 43, 59] .
- 2 является основным фактором, поэтому мы удаляем его и сортируем список по убыванию, что дает:
[59, 43, 13, 11] . - 59 = G, 43 = O и т. Д. Выход «ГОЛЬФ».
Пример 3: 10757494 (с повторным множителем)
- Основными факторами являются [2, 11, 71, 71, 97] .
- 2 является основным фактором, поэтому мы удаляем его и сортируем список по убыванию, что дает:
[97, 71, 71, 11] . - 97 = B, 71 = E, 11 = F. Выход "BEEF".
Разъяснения и правила
- Входное число гарантированно будет 103-гладким и делится на 2 самое большее один раз.
- По определению гладкое число является положительным целым числом .
- Ввод и вывод могут быть обработаны в любом разумном формате. Вывод может быть в нижнем или верхнем регистре. Конечный пробел приемлем. Ведущие пробелы нет.
- Если ваша программа / функция не поддерживает большие входные данные, укажите это в своем ответе.
- Это код гольф, поэтому выигрывает самый короткий ответ в байтах.
Контрольные примеры
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
... ваш результат PIRATE MAZE
или DOOM VACUUMS
...
Ò
on579085261
, чувствую, что <s> Emigna </ s> Adnan уже запущен.