यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य का पाठ दिया गया है: एक अभाज्य संख्या के मॉड्यूलो के अनुसार द्विघातीय अवशेष

Rust Medium math

कार्य «यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य का पाठ दिया गया है: एक अभाज्य संख्या के मॉड्यूलो के अनुसार द्विघातीय अवशेष»

एक अभाज्य संख्या p (p > 2) और एक पूर्णांक a (0 ≤ a < p) दिया गया है। यह निर्धारित करना आवश्यक है कि क्या a, मापांक p के सापेक्ष एक द्विघात अवशेष है, अर्थात क्या कोई ऐसा पूर्णांक x मौजूद है कि x^2 ≡ a (mod p) हो। यदि a एक द्विघात अवशेष है, तो कोई भी ऐसा x (0 ≤ x < p) आउटपुट करें। यदि नहीं, तो -1 आउटपुट करें। लीजेंड्रे प्रतीक और टोनेली-शैंक्स एल्गोरिदम या सीमाओं को ध्यान में रखते हुए ब्रूट-फोर्स का उपयोग करें।

इनपुट प्रारूप

पहली पंक्ति में दो पूर्णांक हैं: p (अभाज्य, 3 ≤ p ≤ 10^9) और a (0 ≤ a < p)।

आउटपुट प्रारूप

एक पूर्णांक आउटपुट करें: x (0 ≤ x < p) ऐसा कि x^2 ≡ a (mod p), या -1 यदि कोई हल नहीं है।

उदाहरण

उदाहरण 1

इनपुट
7 2
आउटपुट
4

उदाहरण 2

इनपुट
7 apple banana apple cherry banana apple date
आउटपुट
-1

उदाहरण 3

इनपुट
7 3
आउटपुट
-1

उदाहरण 4

इनपुट
4 aa a aaa a
आउटपुट
-1

उदाहरण 5

इनपुट
13 4
आउटपुट
11
main.rs