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