Diberi nomor n, cetak nomor Fermat prima ke-n , di mana angka-angka Fermat adalah dalam bentuk 2 2 k +1. Kode ini secara teoritis harus bekerja untuk n apa pun (yaitu jangan hardcode itu), meskipun tidak diharapkan untuk mengakhiri untuk n> 4. (Kode tidak boleh mengembalikan 4294967297 untuk n = 5, karena 4294967297 bukan bilangan prima.)
Harap perhatikan bahwa meskipun semua bilangan prima Fermat adalah dari bentuk 2 2 n +1, tidak semua angka dari bentuk 2 2 n +1 adalah prima. Tujuan dari tantangan ini adalah mengembalikan perdana ke-n .
Uji kasus
0 -> 3
1 -> 5
2 -> 17
3 -> 257
4 -> 65537
Aturan
- Celah standar tidak diijinkan.
- Pengindeksan dan pengindeksan keduanya dapat diterima.
- Ini adalah kode-golf , kemenangan byte-count terendah.
Terkait: Constructible n-gons
2^(2^n) + 1
, di manan
inputnya? Ini sesuai dengan kasus pengujian Anda (yang kami tahu sudah prima, jadi tidak perlu memeriksa). Dan Anda tidak mengharapkan program bekerja di mana n> 4 (dan n = 5 adalah non-prime pertama).n=1:4
. Semua bilangan prima dari bentuk2^2^n+1
, tetapi itu tidak berarti bahwa semua bilangan bentuk2^2^n+1
sebenarnya prima. Ini adalah kasus untukn=1:4
, tetapi tidakn=5
untuk contohnya.n
dan output harus dalam bentuk2^(2^n)+1
. Jika Anda menggunakan variabel yang berbeda untuk input dan eksponen maka beberapa kebingungan mungkin berkurang. Mungkin juga membantu jika Anda secara eksplisit menyatakan bahwa "n = 5 tidak perlu menghasilkan dalam waktu yang wajar, tetapi tidak boleh menghasilkan 4294967297"Jawaban:
Python 2 , 53 byte
Cobalah online!
Menggunakan tes Pépin .
Python 2 , 54 byte
Cobalah online!
sumber
Jelly ,
1311 byteMenggunakan pengindeksan berbasis 1.
Cobalah online!
Bagaimana itu bekerja
sumber
ṛ
untuk menghapus hasilnya ... TILÆẸ
bukan2*
untuk bilangan bulat tunggal ... TILPerl 6 ,
4542 byteCobalah
Cobalah
Diperluas:
sumber
Mathematica, 56 byte
Cobalah online!
sumber
Pyth , 14 byte
Cobalah online!
Menggunakan pengindeksan 1.
sumber
Pyth , 14 byte
Coba online.
Gagasan utama "meminjam" dari jawaban xnor dalam pertanyaan lain
sumber
05AB1E , 8 byte
Kode:
Hasil diindeks 1.
Menggunakan penyandian 05AB1E . Cobalah online!
Penjelasan:
sumber
Javascript,
1246 byteSebagian besar kode diambil oleh pemeriksaan prima, yaitu dari sini .
sumber
Dyalog APL (29 Karakter)
Saya hampir yakin ini bisa diperbaiki.
Ini adalah fungsi rekursif yang memeriksa jumlah pembagi 1 + 2 ^ 2 ^ ⍵, di mana ⍵ adalah argumen yang tepat dari fungsi tersebut. Jika jumlah pembagi adalah 2, jumlahnya prima, dan mengembalikannya, jika tidak, ia memanggil fungsi lagi dengan ⍵ + 1 sebagai argumen yang benar.
Contoh
Di sini saya memanggil fungsi pada masing-masing ⍳4 (angka 1-4). Itu berlaku untuk setiap nomor pada gilirannya.
sumber
Haskell , 61 byte
Cobalah online!
Indeks berbasis 0
Penjelasan
sumber