Sejak Euclid, kita tahu bahwa ada banyak bilangan prima yang tak terhingga. Argumennya berdasarkan kontradiksi: Jika hanya ada banyak, katakan saja , maka pasti tidak dapat dibagi oleh salah satu dari bilangan prima ini, sehingga faktorisasi prima harus menghasilkan perdana baru yang tidak ada dalam daftar. Jadi anggapan bahwa hanya bilangan prima yang ada ada adalah salah.
Sekarang mari kita asumsikan adalah satu-satunya yang utama Metode dari hasil di atas sebagai prime baru (mungkin). Menerapkan metode ini sekali lagi menghasilkan , dan kemudian , lalu , jadi keduanya dan adalah bilangan prima baru, dll. Dalam kasus di mana kita mendapatkan nomor gabungan, kita hanya mengambil bilangan prima paling baru. Ini menghasilkan A000945 .
Tantangan
Diberikan utama dan bilangan bulat menghitung istilah ke- dari urutan yang didefinisikan sebagai berikut:
Urutan-urutan ini dikenal sebagai urutan -Euclid-Mullin .
Contohnya
Untuk :
1 2
2 3
3 7
4 43
5 13
6 53
7 5
8 6221671
9 38709183810571
Untuk ( A051308 ):
1 5
2 2
3 11
4 3
5 331
6 19
7 199
8 53
9 21888927391
Untuk ( A051330 )
1 97
2 2
3 3
4 11
5 19
6 7
7 461
8 719
9 5
(,0({q:)1+*/)^:
selama 15 byte, mengembalikan urutan hinggan
(diindeks-nol)verb conj
menghasilkan kata keterangan .^:
, dan kemudian itu menjadi kata kerja yang berlaku untuk arg kanan. Saya pikir itulah yang terjadi secara tata bahasa.Python 2 , 56 byte
Cobalah online!
Berkomentar
Cobalah online!
sumber
int(input())
sebaliknyai
adalahstr
?input()
selalu mengembalikan string. Dalam Python 2input()
mencoba untuk mengevaluasi input. Saya menggunakan Python 2 dalam hal ini karena kode yang dihasilkan sedikit lebih pendek. Untuk kode nyata Anda harus mencoba menggunakan Python 3 karena ini adalah versi Python yang lebih baru dan lebih didukung.Jelly , 8 byte
Program lengkap (menggunakan pengindeksan nol) menerima dan yang mencetak representasi Jelly dari daftar hingga inklusif. (Sebagai Tautan diadik, dengan kami akan diberikan kembali bilangan bulat, bukan daftar.)P0 n P0 Pn
n=0
Cobalah online!
Bagaimana?
sumber
05AB1E , 8 byte
Input pertama adalah , kedua adalah prime .n p
Cobalah secara online atau beberapa test case lagi (test suite tidak memiliki case test untuk , karena untuk dan builtinn≥9 p=2 p=5
f
membutuhkan waktu terlalu lama).Penjelasan:
sumber
λλP>fW
(6 byte) dengan output sebagai daftar tak terbatas danλ£λP>fW
(7 byte) untuk istilah pertama . Namun mendapatkan harus 9 byte ... Kalau saja kita memiliki flag seperti tetapi untuk elemen terakhir!£
£
tetapi untuk elemen terakhir! ", Seperti.£
? ;) EDIT: Sebenarnya, itu tidak bekerja persis seperti£
untuk daftar .. menggunakan daftar suka[1,2]
dengan.£
hasil dalam dua item longgar dengan 1 dan 2 item terakhir (yaitu12345
menjadi[5,45]
bukan[45,3]
atau[3,45]
, dengan12S.£
) ..λ.£
kerjanya. Saya menggunakan bendera sebagai fungsi tambahan yang terkaitλ
(lihat percakapan ini dengan Adnan ). Saya pada dasarnya menginginkan beberapa flagè
sehingga ketika dijalankanλè...}
akan menghasilkan elemen ke-n daripada aliran tanpa batas (sama sepertiλ£
bekerja untuk menghasilkan elemen n pertama).£
untuk lingkungan rekursif. Ya, makaλ.£
memang tidak akan berhasil, salahku. Nice 6-byter bagaimanapun. Sekarang Anda hanya perlu menunggu jawaban @ flawr apakah diizinkan atau tidak (mungkin).Japt ,
1211 byteBerjuang untuk mendapatkan yang ini benar sehingga mungkin telah melewatkan sesuatu yang bisa bermain golf.
Dibawa
n
sebagai input pertama danp1
, sebagai array tunggal, sebagai input kedua. Mengembalikann
syarat pertama . Ubahh
untukg
mengembalikan istilahn
0-diindeks sebagai gantinya.Cobalah
sumber
Retina , 56 byte
Cobalah online! Mengambil input sebagai jumlah istilah baru untuk ditambahkan pada baris pertama dan istilah seed pada baris kedua. Catatan: Mendapat sangat lambat karena menggunakan factorisation unary sehingga perlu membuat string dengan panjang yang relevan. Penjelasan:
Ganti koma dalam ketentuan seed dengan
*
s dan tambahkan a*
. Ini menciptakan ekspresi Retina untuk serangkaian panjang produk nilai.Ulangi loop berapa kali yang diberikan oleh input pertama.
Ganti sementara angka pada baris pertama dengan a
$
dan tambahkan a_
ke baris kedua, kemudian evaluasi hasilnya sebagai program Retina, sehingga menambahkan string_
dengan panjang 1 lebih dari produk nilai.Temukan faktor nontrivial terkecil dari angka dalam desimal dan tambahkan tanda
*
siap untuk loop berikutnya.Hapus input iterasi.
Hapus yang terakhir
*
.Ganti sisanya
*
dengan,
s.sumber
JavaScript (Node.js) , 54 byte
Cobalah online!
Tidak disatukan
sumber
bash + GNU coreutils, 89 byte
TIO
sumber
Ruby 2.6, 51 byte
(2..)
, rentang tak terbatas mulai dari 2, belum didukung di TIO.Ini adalah fungsi rekursif yang mengambil nilai awal
s
(dapat berupa prime atau komposit), mengembalikannya ketika n = 0 (edit: perhatikan bahwa ini berarti diindeks nol), mengembalikan angka paling kecill
yang lebih besar dari 1 dan membaginya-(s+1)
saat n = 1, dan jika tidak berulang dengans=l*s
dann=n-1
.sumber
(2..)
dengan2.step
(hanya 1 byte lebih lama) untuk memungkinkannya untuk bekerja pada TIO dan semuanya dimatikan satu per satu. Cobalah online!APL (Dyalog Extended) , 15 byte
Ini adalah implementasi yang cukup sederhana dari algoritma yang menggunakan faktor prima Extended yang sangat membantu
⍭
. Cobalah online!Penjelasan
sumber
Pari / GP , 47 byte
Cobalah online!
sumber
Stax , 9 byte
Jalankan dan debug itu
Mengambil dan (diindeks nol) untuk input. Menghasilkan .
p0
n
pn
sumber
C (gcc) ,
5453 byteCobalah online!
-1 byte berkat ceilingcat
sumber
Perl 6 ,
3332 byte-1 byte terima kasih kepada nwellnhof
Cobalah online!
Blok kode anonim yang mengambil nomor dan mengembalikan daftar malas.
Penjelasan:
sumber
-+^[*](@_)
menghemat satu byte.Haskell , 49 byte
Cobalah online!
Mengembalikan urutan tak terbatas sebagai daftar malas.
Penjelasan:
sumber