งานของคุณถ้าคุณเลือกที่จะยอมรับมันคือการเขียนโปรแกรม / ฟังก์ชั่นที่รับจำนวนเต็มNเป็นอินพุต โปรแกรม / ฟังก์ชั่นควรเอาท์พุท / ส่งคืนรายการหมายเลขนายกรัฐมนตรีN ตัวแรก แต่นี่คือสิ่งที่จับได้: คุณไม่ได้รับอนุญาตให้ใช้ตัวละครหลักในรหัสของคุณ ตัวละครหลักเป็นตัวละครที่มีจุดรหัส Unicode เป็นจำนวนเฉพาะ ในช่วง ASCII ที่พิมพ์ได้สิ่งเหล่านี้คือ:
%)+/5;=CGIOSYaegkmq
แต่กฎยังใช้กับอักขระที่ไม่ใช่ ASCII หากรหัสของคุณใช้
- อินพุตที่ถูกต้องคือจำนวนเต็มNโดยที่0 <N <= Tซึ่งคุณสามารถเลือกTได้ แต่ต้องมากกว่าหรือเท่ากับ 10,000 Tไม่จำเป็นต้อง จำกัด
- สำหรับอินพุตที่ไม่ถูกต้อง (ไม่ใช่จำนวนเต็มจำนวนเต็มอยู่นอกช่วง) ให้โยนข้อยกเว้นหรือเอาท์พุท / ส่งคืนอะไร / null
- จำนวนเต็มที่มีช่องว่างนำหน้า / ต่อท้ายเนื่องจากอินพุตถือว่าไม่ถูกต้อง
- จำนวนเต็มที่มี
+
อักขระเครื่องหมายเป็นอินพุตถือว่าไม่ถูกต้อง - จำนวนเต็มที่มีศูนย์นำหน้าเป็นอินพุตถือว่าถูกต้อง
- หากภาษาของคุณอนุญาตให้คุณส่งจำนวนเต็มแยกแล้วเป็นอินพุตกฎการแยกวิเคราะห์ข้างต้น (ยกเว้นช่วงที่หนึ่ง) ไม่ได้ใช้เพราะ int จะถูกแยกวิเคราะห์แล้ว
- อินพุตเป็นฐาน -10 เสมอ
- ไม่อนุญาตให้ใช้เครื่องกำเนิดไฟฟ้าเฉพาะตัวและเครื่องทดสอบรุ่นแรก (รวมถึงฟังก์ชั่นการแยกตัวประกอบเฉพาะ)
- การ จำกัด แหล่งที่มาถูกกำหนดไว้สำหรับอักขระ Unicode แต่การนับจำนวนไบต์สำหรับคะแนนนั้นอาจเป็นการเข้ารหัสแบบอื่นหากคุณต้องการ
- เอาต์พุตสามารถมีการขึ้นบรรทัดใหม่ที่ต่อท้ายเดี่ยว แต่ไม่จำเป็น
- หากคุณส่งออก / ส่งคืนรายการหมายเลขเฉพาะเป็นสตริงจำนวนเฉพาะทุกตัวต้องถูกคั่นด้วยอักขระที่ไม่ใช่ตัวเลขหนึ่งหลักหรือหลายตัว คุณสามารถเลือกตัวคั่นที่คุณใช้
- นี่คือความท้าทายของรหัส - กอล์ฟรหัสที่สั้นที่สุดเป็นไบต์ชนะ
กองย่อยเพื่อยืนยันรหัสของคุณ
คุณสามารถใช้กองย่อยด้านล่างเพื่อตรวจสอบว่ารหัสของคุณไม่มีตัวอักษรหลัก:
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>
+
หน้าดูเหมือนจะน่าผิดหวังที่จะต้องทิ้งสิ่งเหล่านี้ด้วยตนเอง
;
เกิดขึ้นจะห้าม ...