Tugas Anda, jika Anda memilih untuk menerimanya, adalah menulis program / fungsi yang menerima bilangan bulat N sebagai input. Program / fungsi harus menampilkan / mengembalikan daftar bilangan prima N pertama . Tapi inilah intinya: Anda tidak diperbolehkan menggunakan karakter utama dalam kode Anda. Karakter utama adalah karakter yang titik kode Unicode-nya adalah bilangan prima. Dalam rentang ASCII yang dapat dicetak, ini adalah:
%)+/5;=CGIOSYaegkmq
Tetapi aturan ini juga berlaku untuk karakter non-ASCII jika kode Anda menggunakannya.
- Input yang valid adalah bilangan bulat N di mana 0 <N <= T , di mana Anda dapat memilih T , tetapi harus lebih besar dari atau sama dengan 10000. T tidak harus terbatas.
- Untuk input yang tidak valid (bukan bilangan bulat, bilangan bulat di luar kisaran), lempar pengecualian atau hasilkan / tidak menghasilkan apa-apa / null.
- Integer dengan spasi spasi awal / akhir sebagai input dianggap tidak valid.
- Integer dengan
+
karakter tanda sebagai input dianggap tidak valid. - Integer dengan nol di depan karena input dianggap valid.
- Jika bahasa Anda memungkinkan Anda untuk meneruskan bilangan bulat yang sudah diuraikan sebagai input, aturan penguraian di atas (kecuali rentang yang) tidak berlaku, karena int sudah diuraikan.
- Masukan selalu basis-10.
- Penggunaan generator prima dan penguji primitif bawaan (ini mencakup fungsi faktorisasi prima) tidak diizinkan.
- Pembatasan sumber dikenakan pada karakter Unicode, tetapi penghitungan byte untuk skor dapat dalam pengkodean lain jika diinginkan.
- Outputnya bisa berisi satu baris baru, tetapi ini tidak diperlukan.
- Jika Anda menampilkan / mengembalikan daftar bilangan prima sebagai string, maka setiap bilangan prima harus dibatasi oleh satu atau beberapa karakter non-digit. Anda dapat memilih pembatas yang Anda gunakan.
- Ini adalah tantangan kode-golf , kode terpendek dalam byte menang.
Stack Snippet untuk memverifikasi kode Anda
Anda dapat menggunakan Cuplikan Stack di bawah ini untuk memverifikasi bahwa kode Anda tidak mengandung karakter utama:
var primes=[],max=10000;for(var i=2;i<=max;i++){primes.push(i);}for(var N=2;N<Math.sqrt(max);N++){if(primes.indexOf(N)===-1){continue;}primes=primes.filter(function (x){return x===N||x%N!==0;});}function setText(elem,text){var z=('innerText' in elem)? 'innerText' : 'textContent';elem[z]=text;}function verify(inputCode,resultSpan){var invalidChars=[];var success=true;for(var i=0;i<inputCode.length;i++){var cc = inputCode.charCodeAt(i);if (cc>max){setText(resultSpan,"Uh oh! The char code was bigger than the max. prime number calculated by the snippet.");success = false;break;}if (primes.indexOf(cc)!==-1){invalidChars.push(inputCode[i]);}}if (invalidChars.length===0&&success){setText(resultSpan, "Valid code!");}else if(success) { var uniqueInvalidChars = invalidChars.filter(function (x, i, self){return self.indexOf(x)===i;});setText(resultSpan, "Invalid code! Invalid chars: " + uniqueInvalidChars.join("")); }}document.getElementById("verifyBtn").onclick=function(e){e=e||window.event;e.preventDefault();var code=document.getElementById("codeTxt").value;verify(code,document.getElementById("result"));};
Enter your code snippet here:<br /><textarea id="codeTxt" rows="5" cols="70"></textarea><br /><button id="verifyBtn">Verify</button><br /><span id="result"></span>
+
, sepertinya mengecewakan diharuskan untuk membuangnya secara manual.
;
kebetulan dilarang ...