Todo polígono tem um nome oficial. Os polígonos individuais recebem nomes de acordo com o número de lados, combinando um prefixo numérico de origem grega com o sufixo -gon, por exemplo, pentagon e dodecagon.
Escreva uma função que receba um inteiro n como argumento e retorne o nome oficial de um polígono de n lados.
A tabela de prefixos a seguir é usada para construir o nome de um polígono.
| Unidades | Dezenas | Centenas | |||
|---|---|---|---|---|---|
| 1 | hena-, hen- | 10 | deca- | 100 | hecta- |
| 2 | di-, do- | 20 | icosi-, icosa- | 200 | dohecta- |
| 3 | tri-, tria- | 30 | triaconta- | 300 | triahecta- |
| 4 | tetra- | 40 | tetraconta- | 400 | tetrahecta- |
| 5 | penta- | 50 | pentaconta- | 500 | pentahecta- |
| 6 | hexa- | 60 | hexaconta- | 600 | hexahecta- |
| 7 | hepta- | 70 | heptaconta- | 700 | heptahecta- |
| 8 | octa- | 80 | octaconta- | 800 | octahecta- |
| 9 | ennea- | 90 | enneaconta- | 900 | enneahecta- |
Para polígonos de 3 a 9 lados, basta adicionar "-gon" ao prefixo das unidades. Para polígonos de 10 a 99 lados, retorne o prefixo das dezenas seguido pelo prefixo das unidades e, depois, por "-gon". Para polígonos de 100 a 999 lados, comece pelo prefixo das centenas, depois adicione o prefixo das dezenas e, por fim, o prefixo das unidades seguido por "-gon".
Para polígonos com mais de 999 lados, os prefixos a seguir são usados de maneira semelhante a "conta-" e "hecta-", usados para as casas das dezenas e das centenas, respectivamente:
| Posição | Prefixo |
|---|---|
| 10 | conta- |
| 100 | hecta- |
| 1000 | chilia- |
| 10,000 | myria- |
| 100,000 | decamyria- |
| 200,000 | icosamyria- |
| 300,000 | triacontamyria- |
| 1,000,000 | mega- |
| 1,000,000,000 | giga- |
| 1,000,000,000,000 | tera- |
Por fim, o polígono de 10¹⁰⁰ lados é chamado de googolgon, e o polígono de ∞ lados (com um número infinito contável de lados) é chamado de apeirogon.
polygon_name(3) ➞ "triangle"
# exception of: tri-gon
polygon_name(4) ➞ "quadrilateral"
# exception of: tetra-gon
polygon_name(5) ➞ "pentagon"
# penta-gon
polygon_name(7) ➞ "heptagon"
# hepta-gon
polygon_name(19) ➞ "enneadecagon"
# ennea-deca-gon
polygon_name(36) ➞ "triacontahexagon"
# triaconta-hexa-gon
polygon_name(428) ➞ "tetrahectaicosioctagon"
# tetrahecta-icosi-octa-gon
polygon_name(12345) ➞ "myriadichiliatriahectatetracontapentagon"
# myria-dichilia-triahecta-tetraconta-penta-gon