فاحص مبرهنة فيرما الصغرى
أدخل القاعدة والمقياس لترى هل يساوي a^(n−1) mod n العدد 1: مع 2 و7 يكون باقي 2^6 هو 1، ومع 2 و15 يكون 4. يفيدك في مراجعة الواجبات أو اكتشاف مثال مضاد مركّب. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- A
- 2
- N
- 7
- النتيجة
- 1
- النص الأول
- 2
- N
- 7
- الأس
- 6
مبرهنة فيرما الصغرى هي الدعوى الواضحة في الحساب المعياري: إذا كان n أوليًا ولم تكن القاعدة a قابلة للقسمة على n، فإن a مرفوعة إلى الأس n ناقص واحد تكون متطابقة مع الواحد بمقياس n. يحتاج الطلاب والمدرّسون والمطوّرون باستمرار إلى طريقة سريعة لتقييم باقي تلك القوة بدقة—لا ملخصًا نثريًا للبرهان—كي يراجعوا الواجبات أو يختبروا أمثلة مضادة مركّبة أو يجروا اختبارات وحدات على إجراءات معيارية. يستقبل فاحص مبرهنة فيرما الصغرى هذا الصحيحين a وn، ويرفض الزوج عندما لا يساوي gcd(a, n) واحدًا، وإلا يعيد a^(n−1) mod n مع علم منطقي يخبركم هل الباقي واحد.
ما تدّعيه مبرهنة فيرما الصغرى وما يحسبه هذا الأداة
بصيغتها المعتادة في الكتب، تقول مبرهنة فيرما الصغرى: إذا كان n عددًا أوليًا وa عددًا صحيحًا غير قابل للقسمة على n، فإن a مرفوعة إلى الأس n ناقص واحد متطابقة مع الواحد بمقياس n. مكتوبةً بمعامل القياس الذي يستخدمه المبرمجون يوميًا، يعني ذلك أن a^(n−1) mod n يساوي 1 كلما تحققت تلك الفرضيات. البرهان ليس منتج هذا المسار؛ المنتج هو الباقي الدقيق لتلك القوة.
تقدّمون القاعدة a والمقياس n. يشترط الفاحص أولًا أن يكون n صحيحًا لا يقل عن اثنين، لأن الاختزال المعياري بمقياس أقل من اثنين ليس عقدًا مفيدًا للصف. ثم يشترط أن يكون القاسم المشترك الأكبر ل a وn مساويًا لواحد—فرضية الأولية النسبية التي تطابق الصياغة الكلاسيكية عندما يكون n أوليًا (a غير قابل للقسمة على n) وتظل ذات معنى مع n مركّب حين ترغبون في استكشاف ما يحدث خارج ضمان المبرهنة.
عند اجتياز الفحصين يشغّل المحرك رفعًا معياريًا ثنائيًا (تربيع وضرب) على BigInt فتبقى النواتج الوسيطة دقيقة حتى حين يكون الأس n−1 كبيرًا.
للدروس والواجبات والأمثلة المضادة
يستخدم المعلّمون فاحص مبرهنة فيرما الصغرى ليتحقق الطلاب من حسابات يدوية ل a^(p−1) mod p على أعداد أولية صغيرة قبل كتابة البرهان، وليجرّبوا عمدًا n مركّبًا فيروا أن الباقي ليس واحدًا دائمًا. تحتاج مولّدات الامتحانات وإضافات LMS إلى أوراكل حتمي يرفض المدخلات غير الأولية نسبيًا بدل إعادة باقٍ بصمت يربك المصحح. كثيرًا ما تحتاج دفاتر مقررات التعمية خطوة رفع معياري دقيقة واحدة عند تقديم مفاتيح RSA تعليمية أو عند توضيح سبب ظهور الأس n−1 في نظرية الأعداد الابتدائية قبل أن تعمّم مبرهنة أويلر القصة ب φ(n).
عندما تحتاجون لاحقًا مبرهنة أويلر مع φ(n) أو معكوسات معيارية أو تفكيكات نظرية الباقي الصينية، استدعوا تلك القدرات المنفصلة؛ تبقى هذه الصفحة المخصّصة لفيرما a^(n−1) mod n حتى تظل نية البحث وشكل الاستجابة واضحين.
حالات الاستخدام
فحوصات FLT للواجبات والصف
يدخل الطلاب القاعدة a والأولي n لتأكيد أن a^(n−1) mod n يساوي 1، أو يجرّبون n مركّبًا ليروا متى لا يكون الباقي 1.
اختبارات وحدات لرمز الرفع المعياري
تثبّت السكربتات بواقي معروفة مثل 2^6 mod 7 = 1 و2^14 mod 15 = 4 دون إعادة تنفيذ BigInt square-and-multiply في كل لغة.
الأسئلة الشائعة
لماذا يجب أن يساوي gcd(a, n) الواحد؟
تُصاغ مبرهنة فيرما الصغرى للقواعد الأولية نسبيًا للمقياس (أي غير القابلة للقسمة على الأولي n).
هل نتيجة 1 تثبت أن n أولي؟
لا. عندما يكون n أوليًا وgcd(a,n)=1 يكون الباقي دائمًا 1، لكن المركّبات قد تعطي 1 لبعض القواعد. استخدموا أداة أولية مخصّصة لهذا السؤال.
ماذا يحدث إذا كان n مركّبًا؟
ما زال الفاحص يحسب a^(n−1) mod n عندما gcd(a,n)=1.
كيف أتحقق من مبرهنة فيرما الصغرى مع القاعدة 2 والمقياس 7؟
أدخل 2 قاعدةً و7 مقياسًا. تحسب الأداة 2 مرفوعة إلى القوة 6 وتقسمها على 7 فتعطي الباقي 1، أي أن المبرهنة تتحقق لهذا العدد الأولي كما هو متوقع.
هل يمكنني استخدام قاعدة سالبة أو مقياس كبير جدًا؟
نعم. تُختزل القاعدة السالبة أولًا بمقياس n، ويكفي أن يكون المقياس عددًا صحيحًا لا يقل عن 2. تُحسب القوة بالتربيع والضرب المتكرر بأعداد صحيحة دقيقة، لذا يبقى الباقي دقيقًا حتى مع أسس ضخمة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/numth/fermat-little-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":2,"n":7}'const res = await fetch("https://api.kit.forhosting.com/numth/fermat-little-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 2,
"n": 7
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/fermat-little-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 2,
"n": 7
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/fermat-little-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":2,"n":7}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":2,"n":7}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/fermat-little-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"a": 2,
"n": 7
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.fermat_little_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
المنطق النقي نفسه المعتمد على BigInt يشغّل أداة المتصفح المجانية ومسار API المدفوع بسعر $0.002 لكل طلب ناجح، فلا تختلف عروض الصف وسكربتات الإنتاج حول أي باقي.
ما تدّعيه مبرهنة فيرما الصغرى وما يحسبه هذا الأداة
تعيد الاستجابة a وn كسلسلتين عشريتين، وتُبلغ عن الأس n−1، والباقي غير السالب result، وgcd كسلسلة "1"، ومنطقي congruent_to_one يكون صحيحًا تمامًا عندما يساوي result القيمة 1، وسلسلة expression قصيرة يمكنكم طباعتها بجانب الجواب. فحص أولي كلاسيكي: a يساوي 2 وn يساوي 7 يعطي 2^6 mod 7 يساوي 1، ف congruent_to_one صحيح. سبر مركّب كلاسيكي: a يساوي 2 وn يساوي 15 يعطي 2^14 mod 15 يساوي 4، ف congruent_to_one خاطئ—وهذا بالضبط نوع المثال المضاد الذي يبيّن أن a^(n−1) ≡ 1 ليست شهادة أولية بمفردها.
عقد الإدخال والأخطاء وكيفية قراءة الاستجابة
إذا كان n أقل من اثنين تفشل المهمة برسالة تفيد أن المقياس يجب ألا يقل عن اثنين. إذا لم يكن gcd(a, n) واحدًا تفشل المهمة برسالة تسمّي gcd—مثلًا gcd(2, 4) يساوي 2—فيعلم المستدعي أن الزوج خارج فرضية الأولية النسبية بدل تخمين سبب عدم حساب القوة. تُقبل القواعد السالبة وتُختزل إلى نظام البواقي غير السالبة بمقياس n قبل الرفع، بما يطابق الحساب المعياري القياسي. اقرنوا هذا الفاحص بأداة منفصلة للتحليل إلى عوامل أو لاختبار الأولية عندما يحتاج سير العمل أكثر من باقي القوة؛ يجيب هذا المسار فقط عن a^(n−1) mod n تحت بوابة الأولية النسبية كي تبقى نية SEO مركّزة والاستجابة في حدها الأدنى. أرسلوا جسم JSON بطريقة POST بحقلين صحيحين إلزاميين: a (الاسم المستعار base) وn (الاسم المستعار modulus، mod). يجوز لكل حقل أن يكون رقم JSON أو سلسلة صحيح عشري؛ ويُفضَّل شكل السلسلة عندما تخرج القيم عن نطاق الأعداد الصحيحة الآمنة في JavaScript. الكسور والسلاسل الفارغة والرموز غير العددية والقيم الأطول من أربعة وستين رقمًا عشريًا تفشل ب invalid_input ولا تُحاسب أبدًا. عند النجاح يكون كل حقل عددي في الجسم سلسلة عشرية باستثناء congruent_to_one وهو منطقي، فتدور الأعداد الصحيحة الكبيرة عبر JSON دون فقدان دقة. التسعير مبلغ ثابت $0.002 لكل طلب ناجح على وحدة item؛ التحقق الفاشل لا يستهلك الرصيد المدفوع مسبقًا.
عروض صف وسبر مركّب وأتمتة API
يوصل المطوّرون API باختبارات خصائص تؤكد a^(n−1) ≡ 1 لقواعد عشوائية أولية نسبيًا لمقياس أولي معروف، أو بمجموعات انحدار تثبّت أمثلة مضادة مركّبة معروفة مثل 2^14 mod 15 يساوي 4. ولأن التنفيذ parse من الطبقة A نقي، يكلّف كل استدعاء ناجح $0.002 المنشور دون رموز نموذج ودون شبكة صادرة. أبقوا a وn ضمن حد الأرقام المنشور، وثبّتوا في اختباراتكم result بصيغة السلسلة وعلم congruent_to_one، فتحصلون على بواقي قابلة للتكرار للواجبات ومنصات الدروس وعمال الحافة دون إقامة نظام جبر حاسوبي كامل.
حالات التكامل
أوراكل التصحيح التلقائي ل LMS والامتحانات
قيّموا بنود الحساب المعياري بباقٍ حتمي وارفضوا الأزواج غير الأولية نسبيًا كمدخلات غير صالحة بدل اختراع حمولة نجاح.
أسئلة تقنية
ماذا يحسب فاحص مبرهنة فيرما الصغرى هذا؟
بمعطى صحيحين a وn حيث n ≥ 2 وgcd(a,n)=1، يعيد a^(n−1) mod n وما إذا كان ذلك الباقي يساوي 1 (congruent_to_one).
كم تكلفة فاحص مبرهنة فيرما الصغرى؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل استدعاء ناجح؛ المدخل غير الصالح لا يُحاسب أبدًا.