Wprowadzenie
W matematyce liczba wieloboczna to liczba reprezentowana jako kropki lub otoczaki ułożone w kształt regularnego wielokąta. Kropki są uważane za alf (jednostki). Są to jeden typ dwuwymiarowych liczb figuratywnych.
Na przykład liczba 10 może być ułożona w trójkąt:
* ** *** ****
Ale 10 nie może być ułożone w kwadrat. Z drugiej strony liczba 9 może być:
*** *** ***
Niektóre liczby, na przykład 36, można ułożyć zarówno jako kwadrat, jak i trójkąt:
****** * ****** ** ****** *** ****** **** ****** ***** ****** ******
Zgodnie z konwencją 1 jest pierwszą liczbą wielokątną dla dowolnej liczby stron. Zasadą powiększania wielokąta do następnego rozmiaru jest przedłużenie dwóch sąsiadujących ramion o jeden punkt, a następnie dodanie wymaganych dodatkowych boków między tymi punktami. Na poniższych schematach każda dodatkowa warstwa jest pokazana na czerwono.
Numery trójkątne:
Numery kwadratowe:
Wieloboki o większej liczbie boków, takie jak pięciokąty i sześciokąty, mogą być również budowane zgodnie z tą zasadą, chociaż kropki nie będą już tworzyć idealnie regularnej siatki, jak powyżej.
Liczby pięciokątne:
Liczby sześciokątne:
Źródło: Wikipedia
Twoje zadanie
Biorąc pod uwagę dodatnią liczbę całkowitą N (1 <= N <= 1000), wydrukuj każdy typ liczby wielobocznej N, zaczynając od liczb trójkątnych, aż do liczb icosagonalnych (20-gonowych).
Na przykład liczba 10 jest liczbą trójkątną i liczbą dziesiętną, więc wynik powinien być podobny (możesz wybrać własny format wyjściowy, ale powinien on wyglądać mniej więcej tak):
3 10
Przypadki testowe
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
Dla odniesienia, n
-ty k
-numeryczny to:
Źródło: xnor
Pamiętaj, to jest kodowanie w golfa , więc wygrywa kod z najmniejszą liczbą bajtów.
n
th k-gonal liczba to(k-2)*n*(n-1)/2 + n
.