introduzione
In matematica, un numero poligonale è un numero rappresentato come punti o ciottoli disposti a forma di un poligono regolare. I punti sono considerati alfa (unità). Questi sono un tipo di numeri figurati bidimensionali.
Il numero 10, ad esempio, può essere organizzato come un triangolo:
* ** *** ****
Ma 10 non possono essere organizzati come un quadrato. Il numero 9, d'altra parte, può essere:
*** *** ***
Alcuni numeri, come 36, possono essere disposti sia come un quadrato che come un triangolo:
****** * ****** ** ****** *** ****** **** ****** ***** ****** ******
Per convenzione, 1 è il primo numero poligonale per qualsiasi numero di lati. La regola per ingrandire il poligono alla dimensione successiva è estendere due bracci adiacenti di un punto e quindi aggiungere i lati extra richiesti tra quei punti. Nei seguenti diagrammi, ogni livello aggiuntivo è mostrato in rosso.
Numeri triangolari:
Numeri quadrati:
Anche i poligoni con un numero maggiore di lati, come pentagoni ed esagoni, possono essere costruiti secondo questa regola, sebbene i punti non formino più un reticolo perfettamente regolare come sopra.
Numeri pentagonali:
Numeri esagonali:
Fonte: Wikipedia
Il tuo compito
Dato un numero intero positivo N (1 <= N <= 1000), stampa ogni tipo di Numero poligonale N che inizia da Numeri triangolari fino a Numeri Icosagonali (20 gon) inclusi.
Ad esempio, il numero 10 è un numero triangolare e un numero decagonale, quindi l'output dovrebbe essere simile (puoi scegliere il tuo formato di output, ma dovrebbe apparire in questo modo):
3 10
Casi test
1 -> 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
2 -> (None)
3 -> 3
6 -> 3 6
36 -> 3 4 13
Per riferimento, il n
numero k
-th -gonal è:
Attestazione: xnor
Ricorda, questo è code-golf , quindi vince il codice con il minor numero di byte.
n
th-konal è(k-2)*n*(n-1)/2 + n
.