pengantar
Dalam matematika, bilangan poligon adalah bilangan yang direpresentasikan sebagai titik atau kerikil yang disusun dalam bentuk poligon beraturan. Titik-titik dianggap sebagai alfa (unit). Ini adalah satu jenis angka figurate 2 dimensi.
Angka 10, misalnya, dapat disusun sebagai segitiga:
* ** *** ****
Tetapi 10 tidak dapat disusun sebagai kotak. Angka 9, di sisi lain, dapat berupa:
*** *** ***
Beberapa angka, seperti 36, dapat disusun baik sebagai persegi maupun segitiga:
****** * ****** ** ****** *** ****** **** ****** ***** ****** ******
Dengan konvensi, 1 adalah angka poligon pertama untuk sejumlah sisi. Aturan untuk memperbesar poligon ke ukuran berikutnya adalah untuk memperpanjang dua lengan yang berdekatan dengan satu titik dan kemudian menambahkan sisi tambahan yang diperlukan antara titik-titik tersebut. Dalam diagram berikut, setiap lapisan tambahan ditampilkan dengan warna merah.
Angka segitiga:
Nomor Kuadrat:
Poligon dengan jumlah sisi yang lebih tinggi, seperti pentagon dan hexagon, juga dapat dibangun sesuai dengan aturan ini, meskipun titik-titik tidak akan lagi membentuk kisi yang teratur seperti di atas.
Bilangan Pentagonal:
Bilangan Heksagonal:
Sumber: Wikipedia
Tugas Anda
Dengan bilangan bulat positif N (1 <= N <= 1000), cetak setiap jenis Nomor Poligon N mulai dari Bilangan Segitiga hingga dan termasuk Bilangan Icosagonal (20-gon).
Sebagai contoh, angka 10 adalah angka segitiga dan angka decagonal, jadi outputnya harus seperti (Anda dapat memilih format output Anda sendiri, tetapi akan terlihat seperti ini):
3 10
Uji kasus
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
Untuk referensi, n
-th k
nomor -gonal adalah:
Kredit: xnor
Ingat, ini adalah kode-golf , jadi kode dengan byte paling sedikit menang.
n
bilangan k-gonal adalah(k-2)*n*(n-1)/2 + n
.