งานของคุณคือกำหนดตัวเลขจำนวนเต็มสองจำนวนa
และb
คำนวณค่าผกผันการคูณแบบแยกส่วนของโมดูโล b หากมีอยู่
ผกผันแบบแยกส่วนของa
โมดูโลb
เป็นจำนวนดังกล่าวว่าc
ac ≡ 1 (mod b)
หมายเลขนี้เป็นโมดูโลที่ไม่ซ้ำกันb
สำหรับคู่ใด ๆและa
b
มันมีอยู่เฉพาะในกรณีที่ตัวหารร่วมมากของa
และเป็นb
1
หน้าวิกิพีเดียสำหรับผกผัน modular สามารถปรึกษาถ้าคุณต้องการข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อ
อินพุตและเอาต์พุต
อินพุตถูกกำหนดเป็นทั้งสองจำนวนเต็มหรือรายการของสองจำนวนเต็ม โปรแกรมของคุณควรส่งออกหมายเลขเดียวอินเวอร์สมัลติคูณแบบแยกส่วนที่อยู่ในช่วงเวลา0 < c < b
หรือค่าที่ระบุว่าไม่มีอินเวอร์ส ค่าสามารถเป็นอะไรก็ได้ยกเว้นตัวเลขในช่วง(0,b)
และอาจเป็นข้อยกเว้น อย่างไรก็ตามค่าควรจะเหมือนกันสำหรับกรณีที่ไม่มีค่าผกผัน
0 < a < b
สามารถสันนิษฐานได้
กฎระเบียบ
- โปรแกรมควรเสร็จในบางจุดและควรแก้แต่ละกรณีทดสอบในเวลาน้อยกว่า 60 วินาที
- ช่องโหว่มาตรฐานใช้
กรณีทดสอบ
กรณีทดสอบด้านล่างมีให้ในรูปแบบ a, b -> output
1, 2 -> 1
3, 6 -> Does not exist
7, 87 -> 25
25, 87 -> 7
2, 91 -> 46
13, 91 -> Does not exist
19, 1212393831 -> 701912218
31, 73714876143 -> 45180085378
3, 73714876143 -> Does not exist
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดสำหรับแต่ละภาษาจะชนะ
นี่และนี่เป็นคำถามที่คล้ายกัน แต่ทั้งคู่ถามถึงสถานการณ์ที่เฉพาะเจาะจง