```html <p>المخلفات التربيعية بمعامل عدد أولي</p> ```
Rust
Medium
math
مهمة «```html <p>المخلفات التربيعية بمعامل عدد أولي</p> ```»
```html
<p>لدينا عدد أولي p (p > 2) وعدد صحيح a (0 ≤ a < p). يجب تحديد ما إذا كان a يمثل باقيًا تربيعيًا بمعامل p، أي هل يوجد عدد صحيح x بحيث x^2 ≡ a (mod p). إذا كان a باقيًا تربيعيًا، فاطبع أي x من هذا القبيل (0 ≤ x < p). إذا لم يكن كذلك، فاطبع -1. استخدم رمز ليجاندر وخوارزمية تونيلي-شانكس أو البحث الشامل مع مراعاة القيود.</p>
```
<p>لدينا عدد أولي p (p > 2) وعدد صحيح a (0 ≤ a < p). يجب تحديد ما إذا كان a يمثل باقيًا تربيعيًا بمعامل p، أي هل يوجد عدد صحيح x بحيث x^2 ≡ a (mod p). إذا كان a باقيًا تربيعيًا، فاطبع أي x من هذا القبيل (0 ≤ x < p). إذا لم يكن كذلك، فاطبع -1. استخدم رمز ليجاندر وخوارزمية تونيلي-شانكس أو البحث الشامل مع مراعاة القيود.</p>
```
تنسيق الإدخال
السطر الأول يحتوي على عددين صحيحين: 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