Cada polígono tiene un nombre oficial. Los polígonos individuales reciben su nombre según el número de lados, combinando un prefijo numérico de origen griego con el sufijo -gon, p. ej., pentagon y dodecagon.
Escribe una función que reciba un entero n como argumento y devuelva el nombre oficial de un polígono de n lados.
La siguiente tabla de prefijos se utiliza para construir el nombre de un polígono.
| Unidades | Decenas | 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 los polígonos de 3 a 9 lados, simplemente añade "-gon" al prefijo de las unidades. Para los de 10 a 99 lados, devuelve el prefijo de las decenas seguido del prefijo de las unidades y después de "-gon". Para los de 100 a 999 lados, empieza por el prefijo de las centenas, luego añade el prefijo de las decenas y, por último, el prefijo de las unidades seguido de "-gon".
Para los polígonos de más de 999 lados, los siguientes prefijos se utilizan de forma similar a como se usan "conta-" y "hecta-" para las posiciones de las decenas y las centenas, respectivamente:
| Posición | Prefijo |
|---|---|
| 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- |
Y, por último, el polígono de 10¹⁰⁰ lados se llama googolgon y el polígono de ∞ lados (con un número infinito contable de lados) se llama 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