Pertanyaan ini akan menjadi twist dalam menemukan n
bilangan prima ke-5.
Tantangan
Anda harus menulis sebuah program yang akan mengambil satu input n
, dan menampilkan n
bilangan prima ke-10 yang representasi desimalnya mengandung representasi desimal n
sebagai subtring.
Bingung? Berikut ini beberapa contohnya.
n=1
Primes: 2, 3, 5, 7, 11
^1 first prime that contains a 1
Output: 11
n=2
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
^1 ^2 second prime that contains a 2
Output: 23
n=3
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
^1 ^2 ^3 third prime that contains a 3
Output: 23
n=10
Primes: 2, 3, 5, 7, 11, ..., 97, 101, 103, 107, 109, ..., 997, 1009, 1013, 1019, 1021, 1031, 1033
^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 tenth prime that contains a 10
Output: 1033
Ini adalah kode-golf , sehingga jumlah byte terendah menang.
Jika ada yang membingungkan, silakan tinggalkan komentar.
Hot Network Questions
daftar.Jawaban:
05AB1E , 8 byte
Kode:
Penjelasan:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
Pyth - 11 byte
Test Suite .
sumber
Python 2,
676562 byteUji di Ideone .
Bagaimana itu bekerja
Kami menggunakan akibat wajar dari teorema Wilson :
Setiap saat, variabel p sama dengan kuadrat faktorial m - 1 .
Jika k <n ,
k/n
akan menghasilkan 0 dan f disebut secara rekursif. m bertambah, p diperbarui, dan k bertambah jika dan hanya jika m adalah bilangan prima yang mengandung n .Yang terakhir dicapai dengan menambahkan hasil
p%m*(`n`in`m`)
ke k . Dengan akibat wajar teorema Wilson jika m adalah prima,p%m
mengembalikan 1 , dan jika tidak, ia mengembalikan 0 .Setelah k mencapai n , kami menemukan q , perdana ke- n yang berisi n .
Kami sedang dalam panggilan berikutnya selama pemeriksaan, jadi m = q + 1 .
k/n
akan mengembalikan 1 , dan operator bitwise-~
akan menambah nomor itu satu kali untuk setiap panggilan fungsi. Karena dibutuhkan panggilan q - 1 ke f untuk meningkatkan m dari 2 ke q + 1 , panggilan terluar ke f akan mengembalikan 1 + q - 1 = q , sebagaimana dimaksud.sumber
Bash, 27 byte
primes
berasal dari bsdgames.Mengambil input sebagai argumen baris perintah, dan output pada STDOUT.
sumber
Jelly , 13 byte
Cobalah online!
sumber
Mathematica, 75 byte
Mungkin masih bisa bermain golf.
sumber
Jawa,
194180173171112 BytesKode:
Tidak Disatukan:
sumber
P {
danString[] s
. Dan 2. Anda saat ini hanya memberikan output10
, tetapi tantangan kode-golf adalah mengambil inputn
dan memberikan output yang tepat berdasarkan input itu. Juga, Anda mungkin menemukan ini menarik: Tips untuk bermain golf di Jawa.Ruby,
6261 byteMembutuhkan
-rprime
flag (+8 bytes).sumber
Julia,
6160 byteCobalah online!
sumber
MATL , 18 byte
Cobalah online!
Penjelasan
Ini menghasilkan bilangan prima agar menggunakan
do...while
loop. Untuk setiap prime, kondisi diuji (dan prime dikonsumsi). Jika puas, prime itu didorong ke stack lagi. Jumlah elemen dalam tumpukan digunakan sebagai jumlah berapa primes kualifikasi yang telah kami temukan. Ketika jumlah mereka cukup, yang terakhir akan ditampilkan.sumber
Pyke, 15 byte
Coba di sini!
sumber
Bash + GNU coreutils, 66 Bytes
Berbeda dengan solusi @ Doorknob, ini hanya membutuhkan hal-hal yang diinstal pada setiap GNU / Linux:
sumber
seq 1e20|factor|grep -Po "(?<=: )\d*$2\d$"|sed $1q\;d
for((...)){
, harus ada spasi atau baris baru, jadi tidak masalah. Sebelum penutupan}
, harus ada a;
atau baris baru, jadi tidak masalah juga.Perl 6 , 41 byte
Penjelasan:
Uji:
sumber
Java 8,
192183181171 byte (program penuh)Cobalah online.
Penjelasan:
Java 8, 105 byte (fungsi lambda)
Cobalah online.
Sama seperti di atas, tetapi dengan
n
input integer dan tanpa hal-hal kelas verbose.sumber
&&
dengan&
dan menghapus?
dari regexp Anda.&&
dan&
untuk beberapa alasan ..Clojure, 118 byte
Hanya mendapatkan elemen ke-n dari urutan angka malas malas yang prima dan ada
n
dalam representasi string mereka.Anda dapat mencobanya di sini: https://ideone.com/ioBJjt
sumber
Sebenarnya, 16 byte
Cobalah online!
Penjelasan:
sumber
PowerShell v2 +,
10899 byteOoof. Kurangnya segala macam perhitungan / pemeriksaan prima bawaan benar-benar menyakitkan di sini.
Mengambil input
$n
, memasukifor()
loop tak terbatas . Setiap iterasi, kami menggunakanfor
loop yang melingkari checker prime PowerShell regex (h / t ke Martin) untuk mengubahnya menjadi generator utama dengan menambah$i
setiap kali melalui loop. (Misalnya, menjalankan hanyafor(){for(;'1'*++$i-match'^(?!(..+)\1+$)..'){$i}}
akan menampilkan2, 3, 5, 7...
dipisahkan oleh baris baru).Kemudian
-like
cek sederhana untuk melihat apakah$n
ada di suatu tempat$i
, dan menambah counter kami$o
. Jika kita telah mencapai di mana$n
dan$o
sama, output$i
danexit
. Kalau tidak, kita terus melanjutkanfor
untuk menemukan prime berikutnya dan proses berulang.sumber
APL (NARS), 39 karakter, 78 byte
1π adalah bilangan prima berikutnya ...; uji:
tetapi itu sudah pada 20 keluar ruang stack ... Sebaliknya ini di bawah ini tampak ok bahkan jika memiliki panjang lebih lama (61 karakter)
sumber
Tambahkan ++ , 36 byte
Cobalah online!
Cukup tidak efisien. Ulangi setiap bilangan bulatsaya seperti yang saya ≤ 25 x2 dan menyaring komposit dan bilangan prima yang tidak mengandung n . Akhirnya, kami mengambiln nilai th dari integer yang tersisa.
sumber
Japt
-h
,151311 byteCobalah
sumber