พิจารณาจำนวนเต็มแบบโมดูโลq
ที่q
เป็นนายกกำเนิดเป็นจำนวนเต็มใด ๆ1 < x < q
เพื่อให้x^1, x^2, ..., x^(q-1)
ครอบคลุมทั้งหมดq-1
ของจำนวนเต็มระหว่างและ1
q-1
ตัวอย่างเช่นพิจารณาจำนวนเต็มโมดูโล 7 (ซึ่งเราเขียนเป็นZ_7
) จากนั้น3, 3^2 mod 7 = 2, 3^3 = 27 mod 7 = 6, 3^4 = 81 mod 7 = 4, 3^5 = 243 mod 7 = 5, 3^6 = 729 mod 7 = 1
ครอบคลุมค่า3, 2, 6, 4, 5, 1
ทั้งหมดครอบคลุมจำนวนเต็มทั้งหมด1..6
ตามต้องการ
งานคือการเขียนโค้ดที่ใช้เวลาการป้อนข้อมูลและผลเครื่องกำเนิดไฟฟ้าสำหรับn
Z_n
คุณไม่สามารถใช้ builtin หรือไลบรารี่ที่ทำเพื่อคุณได้แน่นอน
ข้อ จำกัด n = 4257452468389
เฉพาะในการปฏิบัติงานของรหัสของคุณคือการที่คุณจะต้องมีการทดสอบที่จะเสร็จสิ้นด้วย
โปรดทราบว่า2^n
หมายถึงการขึ้นสู่อำนาจของ2
n
นั่น^
หมายถึงการยกกำลัง
1 < x < q
ทำให้การท้าทายเป็นเรื่องง่ายขึ้นมาก