Einführung
In der Mathematik ist eine polygonale Zahl eine Zahl, die als Punkte oder Kiesel dargestellt wird, die in Form eines regelmäßigen Polygons angeordnet sind. Die Punkte werden als Buchstaben (Einheiten) angesehen. Dies sind eine Art zweidimensionaler figürlicher Zahlen.
Die Zahl 10 kann beispielsweise als Dreieck angeordnet sein:
* ** *** ****
Aber 10 kann nicht als Quadrat angeordnet werden. Die Zahl 9 kann andererseits sein:
*** *** ***
Einige Zahlen, wie z. B. 36, können sowohl als Quadrat als auch als Dreieck angeordnet werden:
****** * ****** ** ****** *** ****** **** ****** ***** ****** ******
Gemäß der Konvention ist 1 die erste polygonale Zahl für eine beliebige Anzahl von Seiten. Die Regel zum Vergrößern des Polygons auf die nächste Größe besteht darin, zwei benachbarte Arme um einen Punkt zu verlängern und dann die erforderlichen zusätzlichen Seiten zwischen diesen Punkten hinzuzufügen. In den folgenden Diagrammen wird jede zusätzliche Ebene rot dargestellt.
Dreieckige Zahlen:
Quadratzahl:
Nach dieser Regel können auch Polygone mit einer höheren Anzahl von Seiten wie Fünfecke und Sechsecke konstruiert werden, obwohl die Punkte nicht mehr wie oben ein vollkommen regelmäßiges Gitter bilden.
Fünfeckige Zahlen:
Sechseckige Zahlen:
Quelle: Wikipedia
Deine Aufgabe
Bei einer positiven ganzen Zahl N (1 <= N <= 1000) wird jede Art von polygonaler Zahl N von Dreieckszahlen bis einschließlich ikosagonaler Zahlen (20-gon) gedruckt.
Beispiel: Die Zahl 10 ist eine Dreiecks- und eine Dekagonalzahl. Die Ausgabe sollte also ungefähr so aussehen (Sie können Ihr eigenes Ausgabeformat auswählen, aber es sollte ungefähr so aussehen):
3 10
Testfälle
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
Als Referenz ist die n
-te k
-gonale Zahl:
Bildnachweis: xnor
Denken Sie daran, das ist Code-Golf , also gewinnt der Code mit den wenigsten Bytes.
n
k-gonale Zahl(k-2)*n*(n-1)/2 + n
.