Mempertimbangkan sejumlah prima p , ditulis dalam basis 10. The memori dari p didefinisikan sebagai jumlah bilangan prima yang berbeda ketat kurang dari p yang terkandung sebagai substring dari p .
Tantangan
Diberikan bilangan bulat n -negatif sebagai input, cari p utama terkecil sehingga p memiliki memori n . Artinya, temukan bilangan prima terkecil dengan tepat n bilangan prima yang lebih rendah sebagai substring.
Memasukkan
Input dapat diambil melalui format standar apa pun. Anda harus mendukung input hingga n terbesar sehingga output tidak meluap. Sebagai referensi, 4294967291 adalah prime terbesar dalam 32 bit.
Keluaran
Output dapat ditulis ke STDOUT atau dikembalikan dari suatu fungsi.
Contohnya
Angka 2 memiliki memori 0 karena tidak mengandung bilangan prima yang lebih kecil sebagai substring.
Angka 113 adalah bilangan prima terkecil dengan memori 3. Angka 3, 13, dan 11 adalah satu-satunya substring utama dan tidak ada bilangan prima yang lebih kecil dari 113 berisi tepat 3 bilangan prima sebagai substring.
10 syarat pertama dari urutan, dimulai dengan n = 0, adalah
2, 13, 23, 113, 137, 1237, 1733, 1373, 12373, 11317
Catatan
Ini adalah A079397 di OEIS.
Papan peringkat
var QUESTION_ID=55406,OVERRIDE_USER=20469;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Jawaban:
Pyth, 22 byte
Demonstrasi , Test Harness
Penjelasan:
sumber
P_Y
danP_T
bukannya}YPY
dan}TPT
saat itu?CJam,
333130 byteIni adalah program lengkap yang membaca input sebagai argumen baris perintah.
Cobalah online di juru bahasa CJam .
Uji coba
Bagaimana itu bekerja
sumber
CJam, 40 byte
Cobalah online
Saya yakin ini datang sebagai kejutan besar, tetapi sebenarnya lebih lama dari solusi yang diposting Dennis. Yah, tidak juga, karena aku sendiri tidak punya harapan yang terlalu tinggi. Tapi saya tetap ingin mencobanya. Dan karena itu bekerja, terlihat cukup masuk akal bagi saya, dan saya percaya itu cukup berbeda untuk setidaknya menjadi minat, saya pikir saya akan tetap mempostingnya.
Ide dasar di sini adalah bahwa saya membangun daftar bilangan prima dalam satu lingkaran, menambahkan bilangan prima berikutnya yang lebih besar ke daftar di setiap langkah. Untuk memeriksa penghentian, saya menghitung berapa banyak elemen selain elemen terakhir dalam daftar adalah substring dari elemen terakhir. Jika jumlah ini sama dengan input
n
, kita sudah selesai.Penjelasan:
sumber
Pyth - 25 byte
Filter bersarang, bagian dalam untuk menghitung memori, bagian luar untuk mencari yang membutuhkan memori.
Test Suite .
sumber
r2T
bukannyatStT
Oktaf / Matlab, 126 byte
Cobalah online
sumber
JavaScript ES6, 106 byte
Berikut adalah versi yang tidak dikoleksi dengan penjelasan:
Tentu saja ini menjadi sangat lambat dengan agak cepat. Namun OP telah menyatakan tidak ada batasan waktu.
sumber
a
dani%c
untuk memeriksa keaslian. Anda bisa menghemat dua byte dengan mengubah{return i}else{a.push(i)}
kereturn i;else a.push(i)
saya percaya fungsi anonim diperbolehkan juga, yang akan menyelamatkan dua byte lagi di awal.if...else
logika dengan membungkusnya dalam for loop.i++
dengani%c
?a
dan panggilan berikutnya akan memilikii
mis mis., Ketika kami telah menemukan 10 primes akan iterate 10 kali untuk setiap iterasi loop luar.Brachylog (2), 12 byte, tantangan tanggal bahasa
Cobalah online!
Ini sebelumnya 13 byte, menggunakan
ᶠd
, tetapi yang sekarang telah diberi singkatanᵘ
, memotongnya menjadi 12. Karena bahasa yang memposting tanggal tantangan tetap, dan fitur adalah salah satu yang tidak ditambahkan untuk tantangan ini pada khususnya, saya mungkin juga Gunakan.Seperti biasa di Brachylog, ini adalah fungsi, bukan program lengkap.
Penjelasan
Ini memberi kita prime terkecil dengan properti yang kita inginkan, karena
≜
memeriksa nilai mendekati 0 terlebih dahulu.sumber
Python 2,
163154 BytesAku terlalu lelah untuk bermain golf .. Semoga ketika aku bangun besok aku bisa memperbaikinya.
sumber
Julia, 86 byte
Praktis cukup jelas. Ulangi semua bilangan bulat positif, dan setiap kali prime ditemukan, jumlah array boolean yang menunjukkan apakah himpunan bilangan prima kurang dari yang sekarang adalah substring dari yang sekarang. Jika menemukan satu dengan jumlah kecocokan yang diperlukan, kembalikan nilai itu.
Waktu berjalan menjadi lambat untuk n = 11, dan kemungkinan untuk sebagian besar nilai lebih tinggi dari 11 - khususnya, di laptop saya, n = 11 membutuhkan waktu sekitar 33 detik.
sumber
2^63
dievaluasi0
, karena Julia defaultInt32
untuk bilangan bulat integer pada sistem 32-bit - sic!). Idioma terpendek untuk membuat solusi bekerja pada sistem 32-bit adalahfor i=1:uint(-1)
saat itu, tetapi harganya 2 byte lebih. Namun, sulit untuk meminta pengujian solusi golf di semua platform, jadi +1.Haskell,
149147144 byte(127 byte tidak termasuk
import
deklarasi).Output di atas diproduksi dengan definisi yang lebih panjang
Baru, 3 karakter lebih pendek, definisi jauh lebih lambat, saya hanya bisa mendapatkan 5 angka pertama dalam urutan sebelum kehilangan kesabaran dan batal.
sumber
Haskell ,
119118 byteCobalah online! Penggunaan:
f 3
hasil113
.sumber
PHP, 124 byte
mengambil input dari argumen baris perintah; jalankan bersama
-r
.kerusakan
sumber
Python 2 , 108 byte
Cobalah online!
sumber