30
ตัวเลขนี้เป็นจำนวนเฉพาะหรือไม่
เชื่อหรือไม่ว่าเรายังไม่มีความท้าทายกอล์ฟสำหรับการทดสอบเบื้องต้น แม้ว่ามันอาจจะไม่ใช่สิ่งที่ท้าทายที่สุดโดยเฉพาะอย่างยิ่งสำหรับภาษา "ปกติ" แต่มันก็ไม่ใช่เรื่องแปลกใหม่ในหลายภาษา รหัส Rosetta มีรายชื่อตามภาษาของวิธีการที่จะเป็นสำนวน primality ทดสอบหนึ่งโดยใช้การทดสอบมิลเลอร์ราบินโดยเฉพาะและอื่นโดยใช้ส่วนการพิจารณาคดี อย่างไรก็ตาม "สำนวนส่วนใหญ่" มักจะไม่ตรงกับ "สั้นที่สุด" ในความพยายามที่จะทำให้การเขียนโปรแกรมปริศนาและโค้ดกอล์ฟเป็นสถานที่สำหรับการแข่งขันกอล์ฟรหัสความท้าทายนี้พยายามที่จะรวบรวมแคตตาล็อกของแนวทางที่สั้นที่สุดในทุกภาษาคล้ายกับ"Hello, World!" และตีกอล์ฟให้คุณอย่างดีเยี่ยม! . นอกจากนี้ความสามารถในการใช้การทดสอบแบบดั้งเดิมนั้นเป็นส่วนหนึ่งของคำจำกัดความของภาษาโปรแกรมดังนั้นความท้าทายนี้จะทำหน้าที่เป็นไดเรกทอรีของภาษาโปรแกรมที่ได้รับการพิสูจน์แล้ว งาน เขียนโปรแกรมเต็มรูปแบบที่ให้ค่าจำนวนเต็มบวกnอย่างเคร่งครัดเป็นอินพุตพิจารณาว่าnเป็นจำนวนเฉพาะและพิมพ์ค่าจริงหรือค่าเท็จตามนั้น สำหรับจุดประสงค์ของการท้าทายนี้จำนวนเต็มจะเป็นจำนวนเฉพาะถ้ามีตัวหารที่เป็นบวกสองตัว โปรดทราบว่าสิ่งนี้ไม่รวม1ซึ่งเป็นตัวหารเชิงบวกอย่างเคร่งครัดเท่านั้น อัลกอริทึมของคุณจะต้องถูกกำหนดไว้ (เช่นสร้างผลลัพธ์ที่ถูกต้องด้วยความน่าจะเป็น 1) และในทางทฤษฎีควรทำงานกับจำนวนเต็มขนาดใหญ่โดยพลการ ในทางปฏิบัติคุณอาจสมมติว่าอินพุตสามารถเก็บไว้ในชนิดข้อมูลของคุณได้ตราบใดที่โปรแกรมทำงานสำหรับจำนวนเต็มตั้งแต่ 1 ถึง 255 อินพุต หากภาษาของคุณสามารถอ่านได้จาก STDIN ยอมรับอาร์กิวเมนต์บรรทัดคำสั่งหรือรูปแบบอื่น ๆ ของการป้อนข้อมูลผู้ใช้คุณสามารถอ่านจำนวนเต็มเป็นการแทนทศนิยมการแสดงแบบ unary (ใช้อักขระที่คุณเลือก) อาร์เรย์ไบต์ (ใหญ่หรือใหญ่) little endian) หรือไบต์เดียว (หากนี่เป็นประเภทข้อมูลที่ใหญ่ที่สุดในภาษาของคุณ) หาก (และเฉพาะในกรณี) ภาษาของคุณไม่สามารถยอมรับการป้อนข้อมูลของผู้ใช้ใด ๆ คุณอาจเข้ารหัสรหัสในโปรแกรมของคุณได้ ในกรณีนี้จำนวนเต็มฮาร์ดโค้ดต้องสามารถแลกเปลี่ยนได้ง่าย …