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