```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 (عدد أولي، 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