اختبار لوكاس للأولية
تحوّل أداة التحقق من اختبار لوكاس للأولية شهادة رياضية موجزة إلى نتيجة قابلة لإعادة الإنتاج.
شغّل الأداة مجانًا
أدخلوا عددا فرديا n، وشاهدا مقترحا للوكاس، والتحليل الكامل إلى عوامل أولية للعدد n ناقص واحد. تتحقق الحاسبة من التحليل نفسه، وتحسب القوى المعيارية والقواسم المشتركة الكبرى المطلوبة، ولا تثبت أولية n إلا عند تحقق جميع شروط مبرهنة لوكاس. وتحافظ السلاسل العشرية على الأعداد الصحيحة بدقة، حتى للقيم التي تتجاوز نطاق الأعداد الآمن المعتاد في JavaScript.
أعدّوا شهادة كاملة
ابدؤوا بالعدد الصحيح الفردي المراد إثبات أوليته، ثم حللوا n ناقص واحد تحليلا كاملا. أدخلوا n وكل عامل أولي بوصفه سلسلة عشرية معيارية، لأن السلاسل تحفظ القيم الدقيقة حتى حد 64 بت. ينبغي أن يظهر كل عامل مرة واحدة مع أسه الموجب. فعلى سبيل المثال، إذا كان n = 29 فإن n ناقص واحد = 28 = 2 تربيع × 7، ولذلك تتضمن القائمة العامل 2 بأس 2 والعامل 7 بأس 1. ويجب أيضا تقديم أساس a يحقق 1 < a < n. هذا الأساس هو شاهد لوكاس المقترح. تطلب الأداة الشاهد صراحة بدلا من البحث عنه، لأن التحقق من الشهادة سريع ومحدود وقابل للتكرار، في حين قد يعتمد زمن البحث على المدخل. إذا لم يتوفر شاهد بعد، فجرّبوا أسسا صغيرة بأداة مستقلة للجذور الأولية، ثم أرسلوا الشهادة الناتجة هنا. تُرفض المسافات والإشارات والأصفار البادئة وصيغة الفاصلة العائمة والعوامل الأولية المكررة والعوامل المركبة والعوامل الناقصة بدلا من تطبيعها بصمت. وبذلك تصلح الشهادة لسجلات التدقيق ومسارات العمل المؤتمتة.
افهموا شرطي لوكاس
يتحقق الحساب الأول من أن a مرفوعا إلى n ناقص واحد يساوي 1 بترديد n. وهذا هو شرط فيرما المعروف، لكنه لا يثبت الأولية وحده، لأن بعض الأعداد شبه الأولية قد تجتازه. تستخدم المرحلة الثانية الحاسمة كل عدد أولي متميز q يقسم n ناقص واحد. ولكل q، تحسب الأداة a مرفوعا إلى (n ناقص واحد) مقسوما على q بترديد n، ثم تطرح واحدا وتتحقق من أن القاسم المشترك الأكبر بين النتيجة وn يساوي 1. يثبت اجتياز جميع هذه الفحوص أن الرتبة الضربية لـ a بترديد n تساوي n ناقص واحد تماما. ولا يمكن لعنصر بترديد n أن يملك هذه الرتبة إلا إذا كان n أوليا، وهذا هو جوهر مبرهنة لوكاس. تعرض سجلات الفحص المعادة الباقي المعياري والقاسم المشترك الأكبر لكل q متميز، بينما يظل الأس ظاهرا ضمن التحليل المتحقق منه. ويستخدم الرفع المعياري التربيع المتكرر مع حساب BigInt الدقيق، فلا يعتمد الحساب على تقريب الفاصلة العائمة أو أسس عشوائية أو خدمة شبكية أو درجة ثقة احتمالية.
فسّروا الإخفاق والنتيجة الناجحة
تمثل الاستجابة الناجحة نتيجة شهادة أولية، وليست مجرد وصف للعدد بأنه أولي محتمل. فهي تعيد n، وتحدد الشاهد المقبول، وتعرض باقي فيرما، وتسرد فحصا ناجحا للقاسم المشترك الأكبر لكل عامل متميز من عوامل n ناقص واحد. احتفظوا بالمدخل الأصلي إلى جانب هذه الاستجابة عندما يحتاج نظام آخر إلى إعادة إنتاج البرهان. وقد صيغت حالات الإخفاق بدقة مقصودة. إذا لم يساو حاصل ضرب قوى العوامل n ناقص واحد تماما، كان التحليل ناقصا أو غير صحيح. وإذا كان عامل مدرج مركبا، أو تكرر العدد الأولي نفسه، كان التحليل مشوها حتى لو وافق حاصل الضرب الخام. ويعني إخفاق أحد الشرطين المعياريين أن الأساس المقدم ليس شاهد لوكاس؛ ولا يميز ذلك وحده بين كون n مركبا وكونه أوليا مع أساس غير مناسب. جرّبوا شاهدا بديلا له مسوغ رياضي إذا ظل المتوقع أن يكون العدد أوليا. تقتصر المدخلات على الأعداد الفردية من 3 إلى 2^64 ناقص 1، مما يتيح التحقق الحتمي من العوامل الأولية المدرجة قبل تقييم الشهادة. سعر API هو $0.002 لكل طلب.
حالات الاستخدام
تحققوا من عدد أولي مولّد
افحصوا العدد المرشح وتحليله الناتج أثناء الإنشاء قبل استخدام العدد الأولي في حساب دقيق آخر.
أعيدوا إنتاج شهادة
تحققوا من شاهد لوكاس مأخوذ من بحث أو تمرين أو حساب مؤرشف، مع إظهار البواقي الوسيطة صراحة.
اضبطوا بيانات نظرية الأعداد
ارفضوا التحليلات الناقصة والشواهد غير الصالحة قبل قبول أعداد يُدعى أنها أولية في مجموعة بيانات موثوقة.
الأسئلة الشائعة
هل تثبت النتيجة الناجحة أولية العدد؟
نعم. عندما يكون التحليل الكامل صحيحا وتنجح جميع شروط لوكاس، تكون النتيجة برهانا حتميا على أولية n المقدّم.
لماذا يجب تقديم أساس؟
الأساس هو الشاهد الذي تحمله الشهادة. واشتراطه يجعل التحقق محدودا وقابلا لإعادة الإنتاج بدلا من إجراء بحث مفتوح عن جذر أولي.
ماذا يعني إخفاق أحد الأسس؟
ذلك الأساس ليس شاهدا صالحا. قد يكون العدد المرشح مركبا، أو قد يكون أوليا وله شاهد مناسب آخر؛ ولا يحسم الإخفاق وحده أي الاحتمالين صحيح.
لماذا تُدخل الأعداد الصحيحة بوصفها سلاسل؟
تمنع السلاسل العشرية فقدان الدقة للأعداد التي تتجاوز النطاق العددي الآمن في JavaScript. وتستخدم المخرجات سلاسل للسبب نفسه.
كيف يجري التحقق من التحليل؟
يخضع كل عامل مدرج لاختبار حتمي للأولية، وتُرفض التكرارات، ويجب أن يساوي حاصل ضرب جميع قوى العوامل الأولية n ناقص واحد تماما.
ما التكلفة؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويستخدم التنفيذ في المتصفح الحساب الخالص نفسه.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/numth/lucas-primality-test \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":"29","base":"2","factors":[{"prime":"2","exponent":2},{"prime":"7","exponent":1}]}'const res = await fetch("https://api.kit.forhosting.com/numth/lucas-primality-test", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": "29",
"base": "2",
"factors": [
{
"prime": "2",
"exponent": 2
},
{
"prime": "7",
"exponent": 1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/lucas-primality-test",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": "29",
"base": "2",
"factors": [
{
"prime": "2",
"exponent": 2
},
{
"prime": "7",
"exponent": 1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/lucas-primality-test", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":"29","base":"2","factors":[{"prime":"2","exponent":2},{"prime":"7","exponent":1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":"29","base":"2","factors":[{"prime":"2","exponent":2},{"prime":"7","exponent":1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/lucas-primality-test", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"n": "29",
"base": "2",
"factors": [
{
"prime": "2",
"exponent": 2
},
{
"prime": "7",
"exponent": 1
}
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.lucas_primality_test",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_bits | 64 |
max_factors | 64 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |