Göreviniz kabul etmeyi seçerseniz, N tamsayısını girdi olarak kabul eden bir program / işlev yazmaktır . Program / fonksiyon ilk N asal sayının listesini çıkarmalı / vermelidir . Ancak buradaki açıklama: kodunuzda asal karakterleri kullanmanıza izin verilmiyor . Asal karakter, Unicode kod noktası asal bir sayı olan bir karakterdir. Yazdırılabilir ASCII aralığında bunlar:
%)+/5;=CGIOSYaegkmq
Ancak kural, kodunuz bunları kullanıyorsa ASCII olmayan karakterler için de geçerlidir.
- Geçerli bir giriş, N değeri olan 0 <N <= T , T'yi seçebileceğiniz , ancak 10000'den büyük veya ona eşit olması gereken bir tamsayıdır . T sonlu olmak zorunda değildir.
- Geçersiz girişler için (tamsayı olmayanlar, tamsayılar dışında), bir istisna atayın veya hiçbir şey döndürmeyin / hiçbir şey döndürmeyin.
- Giriş olarak öncü / izleyen boşluk olan bir tam sayı geçersiz sayılır.
+
Giriş olarak as işareti karakterli bir tam sayı geçersiz sayılır.- Giriş olarak başında sıfır olan bir tam sayı geçerli olarak kabul edilir.
- Diliniz zaten ayrıştırılmış bir tamsayıyı giriş olarak geçirmenize izin veriyorsa, yukarıdaki ayrıştırma kuralları (aralık dışında) int kullanılmadığı için geçerli değildir.
- Giriş her zaman taban-10'dur.
- Yerleşik asal jeneratörlerin ve asallık test cihazlarının (asal çarpanlara ayırma fonksiyonlarını içerir) kullanımına izin verilmez.
- Kaynak kısıtlaması Unicode karakterlere uygulanır, ancak puan için bayt sayımı, isterseniz başka bir kodlamada olabilir.
- Çıktı, tek bir izleyen yeni satır içerebilir, ancak bu gerekli değildir.
- Asal sayı listesini bir dizge olarak çıkarıp verirseniz, her asal sayının bir veya daha fazla basamaksız karakter (ler) ile sınırlandırılması gerekir. Kullanacağınız sınırlayıcıyı seçebilirsiniz.
- Bu bir kod golf mücadelesidir, bayttaki en kısa kod kazanır.
Kodunuzu doğrulamak için Yığın Parçacığını
Kodunuzun asıl karakterler içermediğini doğrulamak için aşağıdaki Yığın Parçacığını kullanabilirsiniz:
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>
+
, bunları manuel olarak atmak için hayal kırıklığı yaratıyor gibi görünmektedir.
;
... yasaklanmasını olur