Вступ
У математиці багатокутне число - це число, представлене у вигляді крапок або камінчиків, розташованих у формі правильного багатокутника. Крапки вважаються альфами (одиницями). Це один тип двовимірних фігурних чисел.
Наприклад, число 10 може бути розташоване у вигляді трикутника:
* ** *** ****
Але 10 не можна розташовувати як квадрат. З іншого боку, число 9 може бути:
*** *** ***
Деякі числа, як-от 36, можна розташовувати і як квадрат, і як трикутник:
****** * ****** ** ****** *** ****** **** ****** ***** ****** ******
За умовою, 1 є першим многокутним числом для будь-якої кількості сторін. Правило збільшення багатокутника до наступного розміру полягає в тому, щоб розтягнути дві сусідні руки на одну точку і потім додати необхідні додаткові сторони між цими точками. На наступних схемах кожен додатковий шар показаний червоним кольором.
Трикутні числа:
Квадратні цифри:
Полігони з більшою кількістю сторін, такі як п'ятикутники та шестикутники, також можуть бути побудовані згідно з цим правилом, хоча крапки більше не утворюватимуть ідеально правильної решітки, як вище.
П'ятикутні номери:
Шестикутні номери:
Джерело: Вікіпедія
Ваше завдання
З огляду на додатне ціле число N (1 <= N <= 1000), друкуйте кожен тип полігонального числа N , починаючи з трикутних чисел і включаючи ікосагональні (20-гонні) числа.
Наприклад, число 10 - це трикутне число і декагональне число, тому вихід повинен бути чимось на зразок (ви можете вибрати власний формат виводу, але він повинен виглядати приблизно так):
3 10
Тестові справи
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
Для довідки, n
-м k
-gonal номер:
Кредит: xnor
Пам'ятайте, що це код-гольф , тому виграє код з найменшими байтами.
n
k-гоналу - це(k-2)*n*(n-1)/2 + n
.