صيغة ليجاندر: حساب أس عدد أولي في n!
يظهر العدد الأولي 5 أربعًا وعشرين مرة في مضروب 100: قسمة 100 على 5 تعطي 20، وقسمة 20 على 5 تعطي 4، ومجموع 20 و4 هو 24. أدخل أي n وعددًا أوليًا p لتحصل على هذا الأس ببضع قسمات. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- N
- 100
- القدرة (W)
- 5
- الأس
- 24
تعيد هذه الحاسبة الأس الدقيق لعدد أولي مختار p في مضروب n باستعمال صيغة ليجاندر. وبدلا من إنشاء العدد الضخم n!، تقسم n على p تكرارا وتجمع نواتج القسمة الصحيحة. تفيد الأداة في مسائل القابلية للقسمة والأصفار النهائية والمعاملات الثنائية ودروس نظرية الأعداد ومسابقات البرمجة. يجري التحقق من كل مدخل بوصفه عددا صحيحا ضمن الحدود، كما تختبر أولية p مستقلا قبل الحساب، ولذلك ينتج عن الأساس المركب خطأ واضح لا جواب مضلل.
ما الذي تقيسه صيغة ليجاندر
تحسب الصيغة عدد عوامل p في حاصل الضرب 1 × 2 × 3 × … × n. يضيف كل مضاعف لـ p عاملا، ويضيف كل مضاعف لـ p² عاملا آخر، ثم تضيف مضاعفات p³ المزيد. لذلك يكون الأس floor(n/p) + floor(n/p²) + floor(n/p³) + الحدود التالية حتى يصبح الناتج صفرا.
بينما 5²⁵ لا يقسمه. لا توسع الحاسبة المضروب مطلقا. تعرض الاستجابة n وp مع النتيجة لمنع الالتباس.
التحقق من المدخلات وطريقة الحساب
أرسل n عددا صحيحا غير سالب وp عددا أوليا صحيحا لا يقل عن 2. تقبل السلاسل المؤلفة من أرقام عشرية فقط، وترفض الكسور والقيم السالبة والنصوص الفارغة واللانهاية وما يتجاوز الحد. بعد التحقق تبدأ العملية بـ quotient = n، ثم تستبدله بـ floor(quotient/p) وتضيف القيمة إلى الأس حتى الصفر.
تمنع هذه الطريقة فيض القوى.
استخدام الأس في مسائل أوسع
لإيجاد أس p في C(n, k)، احسبه في n! ثم اطرح نتيجتي k! و(n-k)!. ويقسم p^a العدد n!
إذا وفقط إذا لم يتجاوز a الأس المعاد. تنشأ الأصفار العشرية النهائية من أزواج 2 و5، ولأن عوامل 2 أكثر فإن أس 5 يعطي عددها. تجيب هذه القدرة عن عدد أولي واحد بدلا من إعادة التحليل الكامل، فتحافظ على استجابة صغيرة.
تناسب التعليم والتصحيح الآلي والمسابقات وقواعد التحقق الخلفية. وعند الحاجة إلى عدة أعداد أولية، نفذ طلبا مستقلا لكل منها.
حالات الاستخدام
فحص أكبر قوة أولية تقسم مضروبا
أوجد أكبر أس a يجعل p^a يقسم n! من دون حساب المضروب نفسه.
تقييم المعاملات الثنائية
ادمج ثلاثة أسس للمضروب لحساب أس p في معامل ثنائي بدقة.
الأسئلة الشائعة
ماذا يعني الأس؟
هو أكبر عدد صحيح a يجعل p^a يقسم n! بلا باق.
لماذا يجب أن يكون p أوليا؟
تحسب هذه الصيغة تقييم عدد أولي واحد، وترفض القيم المركبة لمنع تسمية حساب مختلف تسمية خاطئة.
هل تنشئ الحاسبة مضروب n؟
لا، بل تجمع نواتج قسمة صحيحة متتابعة وتتجنب قيمة المضروب الضخمة.
ماذا يحدث إذا كان p أكبر من n؟
تكون النتيجة صفرا لأنه لا يوجد عامل من 1 إلى n يقبل القسمة على p.
كم صفرًا في نهاية مضروب 100؟
في نهايته 24 صفرًا. يحتاج كل صفر نهائي إلى عامل 2 وعامل 5، والمضروب يحتوي عوامل 2 أكثر من عوامل 5، لذا يساوي عدد الأصفار أس العدد 5، وهو 24 للعدد 100.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/numth/legendre-formula \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100,"p":5}'const res = await fetch("https://api.kit.forhosting.com/numth/legendre-formula", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100,
"p": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/legendre-formula",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100,
"p": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/legendre-formula", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100,"p":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100,"p":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/legendre-formula", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"n": 100,
"p": 5
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.legendre_formula",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_n | 1000000000 |
max_p | 1000000000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
والنتيجة هي التقييم p-adic للمقدار n!، ويكتب غالبا v_p(n!).
ما الذي تقيسه صيغة ليجاندر
عند n = 100 و p = 5 تكون الحدود 20 و4 و0، فالأس 24؛ أي إن 5²⁴ يقسم 100! وعند n = 0 أو n = 1 يكون المضروب 1 والأس صفرا.
التحقق من المدخلات وطريقة الحساب
تنجح p = 7، أما p = 9 فتعيد invalid_input. الخوارزمية حتمية ولا تستخدم الشبكة أو العشوائية، وتنتج القيمة نفسها في المتصفح وAPI. تكلفة طلب API الناجح هي $0.002.
حالات التكامل
حساب الأصفار النهائية للمضروب
استخدم p = 5 لحساب أصفار n! العشرية النهائية أو طبّق النتيجة على قواعد أخرى.
أسئلة تقنية
ما تكلفة الحساب عبر API؟
يكلف كل طلب API ناجح $0.002. وتستخدم حاسبة المتصفح النواة الحتمية نفسها.