กำหนดตัวเลข n ให้พิมพ์หมายเลขเฉพาะแฟร์มาต์หมายเลขที่หมายเลขแฟร์มาต์เป็นรูปแบบ 2 2 k +1 รหัสนี้ควรใช้งานได้จริงในทางทฤษฎีสำหรับ n ใด ๆ (เช่นอย่าฮาร์ดโค้ด) แม้ว่าจะไม่คาดว่าจะยุติการทำงานสำหรับ n> 4 (มันไม่ควรส่งคืน 4294967297 สำหรับ n = 5 เนื่องจาก 4294967297 ไม่ใช่หมายเลขเฉพาะ)
โปรดทราบว่าในขณะที่จำนวนแฟร์มาต์ทั้งหมดอยู่ในรูปแบบ 2 2 n +1 แต่ตัวเลขทั้งหมดของรูปแบบ 2 2 n +1 นั้นเป็นจำนวนเฉพาะ เป้าหมายของความท้าทายนี้คือการคืนค่านายกที่ n
กรณีทดสอบ
0 -> 3
1 -> 5
2 -> 17
3 -> 257
4 -> 65537
กฎระเบียบ
- ช่องโหว่มาตรฐานไม่ได้รับอนุญาต
- 0-indexing และ 1-indexing นั้นเป็นที่ยอมรับได้
- นี่คือรหัส - กอล์ฟชนะน้อยที่สุดนับไบต์
ที่เกี่ยวข้อง: Constructible n-gons
n=1:4ได้ เฟนต์แฟร์มาทั้งหมดอยู่ในรูปแบบ2^2^n+1แต่นั่นไม่ได้หมายความว่าตัวเลขทั้งหมดของแบบฟอร์ม2^2^n+1นั้นมีความสำคัญมาก นี่เป็นกรณีสำหรับn=1:4แต่ไม่ใช่n=5สำหรับตัวอย่าง
n 2^(2^n)+1หากคุณใช้ตัวแปรที่แตกต่างกันสำหรับอินพุตและเลขชี้กำลังความสับสนบางอย่างอาจลดลง นอกจากนี้ยังอาจช่วยถ้าคุณระบุอย่างชัดเจนว่า "n = 5 ไม่จำเป็นต้องส่งออกในเวลาที่เหมาะสม แต่จะต้องไม่ส่งออก 4294967297"
2^(2^n) + 1ที่nป้อนข้อมูลหรือไม่ สิ่งนี้สอดคล้องกับกรณีทดสอบของคุณ (ซึ่งเรารู้ว่าดีที่สุดแล้วดังนั้นไม่จำเป็นต้องตรวจสอบ) และคุณไม่คาดหวังว่าโปรแกรมจะทำงานโดยที่ n> 4 (และ n = 5 เป็น non-prime แรก)