Ada sejumlah besar fungsi pembangkit prima. Hampir semua dari mereka dibangun dan didasarkan pada saringan Eratosthenes, fungsi Möbius atau teorema Wilson dan umumnya tidak layak untuk dihitung dalam praktek. Tetapi ada juga generator, yang memiliki struktur yang sangat mudah dan ditemukan secara tidak sengaja.
Pada tahun 2003 Stephen Wolfram menjelajahi kelas persamaan pengulangan bersarang dalam percobaan komputer langsung di NKS Summer School. Sekelompok orang di sekitar Matthew Frank menindaklanjuti dengan eksperimen tambahan dan menemukan properti menarik dari pengulangan itu
a(n) = a(n-1) + gcd(n,a(n-1))
dengan nilai awal a(1) = 7
. Perbedaannya a(n) - a(n-1) = gcd(n,a(n-1))
sepertinya selalu 1 atau prima. Beberapa perbedaan pertama adalah ( OEIS A132199 ):
1, 1, 1, 5, 3, 1, 1, 1, 1, 11, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 23, 3, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 47, 3, 1, 5, 3, ...
Jika kita hanya menghilangkan 1s kita mendapatkan urutan berikut ( OEIS A137613 ):
5, 3, 11, 3, 23, 3, 47, 3, 5, 3, 101, 3, 7, 11, 3, 13, 233, 3, 467, 3, 5, 3,
941, 3, 7, 1889, 3, 3779, 3, 7559, 3, 13, 15131, 3, 53, 3, 7, 30323, 3, ...
Eric S. Rowland membuktikan keunggulan setiap elemen dalam daftar ini beberapa tahun kemudian. Seperti yang Anda lihat, bilangan prima dicampur dan beberapa dari mereka muncul beberapa kali. Juga telah terbukti, bahwa urutannya mencakup bilangan prima yang tak terhingga banyaknya. Selain itu diduga, bahwa semua bilangan prima aneh muncul.
Karena generator utama ini tidak dibangun tetapi hanya ditemukan secara tidak sengaja, generator utama disebut "terjadi secara alami". Tetapi perhatikan bahwa dalam praktiknya generator ini juga sangat tidak layak untuk dihitung. Ternyata, p prima hanya muncul setelah (p–3)/2
1s berturut-turut. Meskipun demikian menerapkan generator utama ini akan menjadi tugas Anda.
Tantangan:
Tulis fungsi atau program yang mencetak n
elemen pertama dari urutan A137613
(urutan tanpa 1s). Anda dapat membaca nomor input n >= 0
melalui STDIN, argumen baris perintah, prompt atau argumen fungsi. Keluarkan n
elemen pertama dalam format apa pun yang dapat dibaca menjadi STDOUT, atau kembalikan array atau daftar dengan nilai-nilai ini.
Ini adalah kode-golf. Karenanya kode terpendek menang.
Papan peringkat:
Berikut ini adalah Stack Snippet untuk menghasilkan leaderboard biasa dan gambaran umum pemenang berdasarkan bahasa. Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
# Language Name, N bytes
di mana N adalah ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda bisa menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
# Ruby, <s>104</s> <s>101</s> 96 bytes
a(n)-a(n-1)
n
nol?
//
) dan menjelaskannya dalam kiriman Anda. Jika ada yang tidak setuju dengan Anda, Anda selalu dapat mengedit posting Anda.