Sebuah constructible n-gon adalah poligon dengan n sisi yang Anda dapat membangun dengan hanya kompas dan penggaris bertanda.
Seperti yang dinyatakan oleh Gauss, satu-satunya n yang n-gon dapat dikonstruksikan adalah produk dari sejumlah bilangan prima Fermat yang berbeda dan kekuatan 2 (mis. n = 2^k * p1 * p2 * ...
Dengan k
menjadi bilangan bulat dan setiap p
bilangan prima Fermat yang berbeda).
Fermat prime adalah prime yang dapat dinyatakan sebagai F (n) = 2 ^ (2 ^ n) +1 dengan bilangan bulat positif. Satu-satunya Fermat prime yang diketahui adalah untuk 0, 1, 2, 3 dan 4.
Tantangan
Diberikan bilangan bulat n>2
, katakan apakah n-gon dapat dikonstruksikan atau tidak.
Spesifikasi
Program atau fungsi Anda harus mengambil integer atau string yang mewakili integer tersebut (baik dalam unary, binary, desimal atau basis lainnya) dan mengembalikan atau mencetak nilai yang benar atau salah.
Ini adalah kode-golf, sehingga jawaban terpendek menang, celah standar berlaku.
Contohnya
3 -> True
9 -> False
17 -> True
1024 -> True
65537 -> True
67109888 -> True
67109889 -> False
B
danỊ
yang akan saya coba dalam 5.Mathematica, 24 byte
Menggunakan klasifikasi berikut dari OEIS:
Jumlah total
φ(x)
dari bilangan bulatx
adalah jumlah bilangan bulat positif di bawah inix
yang sesuai untukx
. Cototient adalah jumlah bilangan bulat positif yang tidak, yaitux-φ(x)
. Jika jumlah sama dengan harga, itu berarti jumlah dariφ(x) == x/2
.Klasifikasi lebih mudah
berakhir dengan satu byte lebih lama:
sumber
n
adalah jumlah bilangan bulat di bawah inin
yang merupakann
koprime, dan cototient adalah jumlah bilangan bulat di bawahnyan
yang tidak. Saya akan mengedit tautan.n
.Retina,
5150 byteInput dalam biner. Dua baris pertama dibagi dengan kekuatan dua, dua baris berikutnya oleh semua bilangan prima Fermat yang dikenal (jika faktanya nomor tersebut adalah produk dari bilangan Fermat). Sunting: Disimpan 1 byte berkat @Martin Ender ♦.
sumber
JavaScript (ES7), 61 byte
sumber
Sebenarnya, 6 byte
Jawaban ini didasarkan pada algoritma xnor dalam jawaban Jelly Martin Ender . Saran bermain golf diterima. Cobalah online!
Bagaimana itu bekerja
sumber
Batch, 97 byte
Input pada stdin dalam desimal. Ini sebenarnya 1 byte lebih pendek dari menghitung kekuatan 2 iteratif. Saya menghemat 1 byte dengan menggunakan kekuatan @ xnor sebesar 2 cek.
sumber