خوارزمية إقليدس
القاسم المشترك الأكبر للعددين 1071 و462 هو 21، ويُبلغ في ثلاث قسمات: 1071 = 462 × 2 + 147، ثم 462 = 147 × 3 + 21، ثم باقٍ يساوي صفرًا. أدخل عددين صحيحين لترى كل خطوة لا الجواب وحده. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- A
- 1,071
- B
- 462
- Gcd
- 21
- عدد الخطوات
- 3
تأخذ حاسبة خوارزمية إقليدس عددين صحيحين وتحسب قاسمهما المشترك الأكبر بالطريقة التي وصفها إقليدس قبل أكثر من ألفي عام: بالقسمة المتكررة مع الاحتفاظ بالباقي. وبدلًا من إرجاع العدد النهائي فقط، تُرجع قائمة الخطوات الكاملة — كل سطر بالصيغة: مقسوم = مقسوم عليه × خارج قسمة + باقٍ — لتتمكن من رؤية كيفية الوصول إلى الإجابة بدقة. تقبل القيم السالبة (إذ يُحسب القاسم المشترك الأكبر بالقيم المطلقة)، وترفض المدخلات غير الصحيحة، وترفض الحالة غير المعرفة ق.
ما الذي تفعله خوارزمية إقليدس فعليًا
القاسم المشترك الأكبر لعددين صحيحين هو أكبر عدد يقسم كليهما دون باقٍ. تجد خوارزمية إقليدس هذا القاسم دون أي تحليل إلى عوامل، ولهذا تظل سريعة حتى مع المدخلات الكبيرة جدًا. الفكرة بسيطة: إذا كان عدد ما يقسم كلاً من a وb، فإنه يقسم أيضًا باقي قسمة a على b.
لذا نستبدل الزوج (a, b) بالزوج (b, a mod b) ونكرر العملية. كل خطوة هي قسمة مطولة — على سبيل المثال 1071 = 462 × 2 + 147 — ونستمر حتى يصبح الباقي صفرًا. آخر باقٍ غير صفري هو القاسم المشترك الأكبر.
ولأن الباقي يتناقص تناقصًا صارمًا في كل خطوة، فإن الحلقة تنتهي حتمًا، وتنتهي بسرعة: فعدد الخطوات يتناسب مع لوغاريتم المدخل الأصغر. تنفذ هذه النقطة الطرفية هذا الإجراء نفسه بالضبط وتعيد إليك كل قسمة أُجريت، لا الخلاصة فقط، مما يجعلها مفيدة سواء لتصحيح الواجبات المنزلية أو لتدقيق عملية حسابية داخل نظام أكبر.
المدخلات والحالات الحدية وكيفية الإبلاغ عن الأخطاء
ترسل حقلين، a وb، ويجب أن يكون كلاهما عددين صحيحين. الأعداد الصحيحة السالبة صالحة: فالقاسم المشترك الأكبر معرَّف على القيم المطلقة، وبالتالي فإن ق. م. أ(-1071, 462) يساوي ق.
م. أ(1071, 462)، وتُحسب قائمة الخطوات على القيم المطلقة. الصفر مدخل صالح لأحد الحقلين — إذ ق. م. أ(a, 0) يساوي |a|، وفي هذه الحالة تكون قائمة الخطوات فارغة لأنه لا حاجة لأي قسمة — لكن كون الحقلين كليهما صفرًا يُرفض، لأن ق.
م. أ(0,0) غير معرَّف رياضيًا. الأخطاء لا تنتج إجابة جزئية أبدًا: يُرفض الطلب برمز مقروء آليًا ورسالة يمكنك عرضها على المستخدم.
أين يثبت القاسم المشترك الأكبر خطوة بخطوة جدارته
القاسم المشترك الأكبر المجرد سلعة متوفرة في كل مكان — فكل لغة برمجة تضمه في مكتبتها القياسية. وما تضيفه هذه القدرة هو الأثر. يستخدم المعلمون والطلاب قائمة الخطوات للتحقق من أن التمرين حُل بخوارزمية إقليدس الحقيقية لا بتخمين القواسم.
ويستخدمها المطورون عند تصحيح تبسيط الكسور أو اختزال نسب الأبعاد أو فحوص التبادل الأولي، لأن رؤية 252 = 105 × 2 + 42 تحدد بدقة أين يختلف الحساب اليدوي عن الشيفرة. ويلتقي دارسو التشفير بالخوارزمية بوصفها أساس النسخة الموسعة التي تنتج معاملات بيزو والمقلوبات المعيارية؛ ورؤية خطوات القسمة البسيطة أولًا تجعل تلك القفزة أسهل بكثير.
حالات الاستخدام
تصحيح تمرين محلول
الصق العددين من مسألة واجب منزلي وقارن خطوات القسمة المكتوبة بخط يدك مع تلك التي تنتجها الخوارزمية فعليًا.
تبسيط الكسور والنسب
احصل على القاسم المشترك الأكبر للبسط والمقام لاختزال كسر، مع قائمة الخطوات بوصفها أثر تدقيق لكيفية إيجاد القاسم.
تدريس الخوارزمية قبل النسخة الموسعة
اعرض على الطلاب أولًا أثر القسمة البسيط، ثم انتقل إلى معاملات بيزو والمقلوبات المعيارية المبنية على الحلقة نفسها.
الأسئلة الشائعة
كم تبلغ التكلفة؟
ويمكن أيضًا تشغيلها مجانًا في متصفحك على هذه الصفحة.
لماذا يُرفض ق.م.أ(0,0)؟
لأن القاسم المشترك الأكبر لصفر وصفر غير معرَّف — فكل عدد صحيح يقسم الصفر، وبالتالي لا يوجد قاسم أعظم. قدِّم قيمة واحدة غير صفرية على الأقل.
هل يمكنني تمرير أعداد سالبة؟
نعم. يُحسب القاسم المشترك الأكبر على القيم المطلقة، وبالتالي يعيد ق. م. أ(-1071, 462) النتيجة نفسها التي يعيدها ق. م. أ(1071, 462).
ماذا تحتوي مصفوفة steps؟
كائن واحد لكل قسمة: المقسوم والمقسوم عليه وخارج القسمة والباقي، بحيث يُقرأ كل سطر بالصيغة: مقسوم = مقسوم عليه × خارج قسمة + باقٍ. وآخر باقٍ غير صفري هو القاسم المشترك الأكبر.
ما أكبر حجم ممكن للمدخلات؟
حتى أكبر عدد صحيح آمن، 9007199254740991، بحيث يكون كل خارج قسمة وكل باقٍ في المخرجات دقيقًا تمامًا.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/math/euclidean-algorithm \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":1071,"b":462}'const res = await fetch("https://api.kit.forhosting.com/math/euclidean-algorithm", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 1071,
"b": 462
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/euclidean-algorithm",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 1071,
"b": 462
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/euclidean-algorithm", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":1071,"b":462}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":1071,"b":462}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/euclidean-algorithm", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"a": 1071,
"b": 462
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.euclidean_algorithm",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_abs | 9007199254740991 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
م. أ(0,0). الشيفرة نفسها تعمل مجانًا في متصفحك على هذه الصفحة وعبر واجهة API المدفوعة.
المدخلات والحالات الحدية وكيفية الإبلاغ عن الأخطاء
تُقبل السلاسل الرقمية التي تمثل أعدادًا صحيحة دقيقة مثل "1071"؛ أما الكسور العشرية والكسور الاعتيادية والترميز العلمي والقيم غير الرقمية فتُرفض مع خطأ invalid_input يشرح ما الخطأ. القيم مقيدة بنطاق الأعداد الصحيحة الآمنة في معيار IEEE 754 للدقة المزدوجة، أي نحو 9 كوادريليونات، بحيث يكون كل خارج قسمة وكل باقٍ في المخرجات دقيقًا تمامًا.
أسئلة تقنية
ما الذي يُعَد عددًا صحيحًا؟
عدد JSON بلا جزء كسري، أو سلسلة من الأرقام مع إشارة اختيارية في البداية. أما الكسور العشرية والترميز العلمي والقيم غير الرقمية فتُرفض مع خطأ invalid_input.