จำนวน Prothตั้งชื่อตามFrançois Proth เป็นตัวเลขที่สามารถแสดงเป็น
N = k * 2^n + 1
ที่ไหนk
เป็นจำนวนเต็มบวกแปลกและเป็นบวกจำนวนเต็มดังกล่าวว่าn
2^n > k
ลองใช้ตัวอย่างที่เป็นรูปธรรมมากขึ้น ใช้ 3 3 เป็นหมายเลข Proth เพราะมันสามารถเขียนเป็น
(1 * 2^1) + 1
และ2^1 > 1
เป็นที่พอใจ 5 เป็นหมายเลข Proth ด้วยเช่นกัน
(1 * 2^2) + 1
และ2^2 > 1
เป็นที่พอใจ อย่างไรก็ตาม 7 ไม่ใช่หมายเลข Proth เพราะวิธีเดียวที่จะเขียนในรูปแบบN = k * 2^n + 1
คือ
(3 * 2^1) + 1
และ2^1 > 3
ไม่พอใจ
ความท้าทายของคุณค่อนข้างง่าย: คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดจำนวนเต็มแบบ postive เพื่อกำหนดว่าเป็นหมายเลข Proth หรือไม่ คุณอาจป้อนข้อมูลในรูปแบบที่เหมาะสมและควรส่งออกค่าความจริงหากเป็นหมายเลข Proth และค่าเท็จหากไม่เป็นเช่นนั้น หากภาษาของคุณมีฟังก์ชั่น "ตรวจจับหมายเลข Proth" คุณสามารถใช้ฟังก์ชันนี้ได้
ทดสอบ IO
นี่คือตัวเลข Proth 46 รายการแรกที่มีมากถึง 1,000 ( A080075 )
3, 5, 9, 13, 17, 25, 33, 41, 49, 57, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241, 257, 289, 321, 353, 385, 417, 449, 481, 513, 545, 577, 609, 641, 673, 705, 737, 769, 801, 833, 865, 897, 929, 961, 993
อินพุตที่ถูกต้องอื่น ๆ ควรให้ค่าที่ผิดพลาด
ตามปกตินี่คือ code-golf ดังนั้นจึงใช้ช่องโหว่มาตรฐานและคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ!
ทฤษฎีจำนวนความสนุก - ข้อเท็จจริงด้าน - หมายเหตุ:
นายกที่ใหญ่ที่สุดที่รู้จักซึ่งไม่ใช่ Mersenne Prime คือ19249 * 2^13018586 + 1
ซึ่งเพิ่งเกิดขึ้นเช่นกันกับหมายเลข Proth!