اختبار الأولية حتى sqrt(n)
فحص عدد واحد بكفاءة
اختبار الأولية حتى sqrt(n) درس مجاني في Coding Interview Prep على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Coding Interview Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
سؤال العدد الأولي
من المهارات الأساسية في الرياضيات تحديد ما إذا كان عدد واحد أوليًا. يمتلك العدد الأولي قاسمين بالضبط: الواحد ونفسه. لنختبر ذلك بسرعة. 🔍
الاختبار الساذج
يمكنك تجربة قسمة n على كل عدد من 2 حتى n ناقص 1. هذه الطريقة صحيحة، لكنها بطيئة بشكل مؤلم عندما تكون قيمة n كبيرة.
حيلة الجذر التربيعي
إليك الفكرة الأساسية: لا تحتاج إلى اختبار القواسم إلا حتى الجذر التربيعي لـ n. فلن يظهر أي عامل جديد بعد ذلك.
لماذا يكفي الجذر التربيعي
تأتي القواسم في أزواج حاصل ضربها يساوي n. ولو كان كلاهما أكبر من الجذر التربيعي، لتجاوز حاصل ضربهما قيمة n، وهذا مستحيل.
حدّ الحلقة
كرّر i من 2 ما دام حاصل ضرب i في نفسه لا يتجاوز n. يؤدي استخدام i*i إلى تجنّب أخطاء الفاصلة العائمة التي قد يسببها sqrt مع الأعداد الصحيحة الكبيرة.
while i * i <= n:
...تعامل مع الحالات الصغيرة
الأعداد الأصغر من 2 ليست أولية أبدًا، لذا ارفضها مسبقًا. يحافظ هذا الفحص الوقائي على نظافة الحلقة الرئيسية وصحتها.
if n < 2:
return Falseالدالة كاملة
اجمع الخطوات معًا: افحص القيم الصغيرة، ثم افحص القواسم المحتملة حتى الجذر. وتعني أي قسمة دون باقٍ أن n مركب.
def is_prime(n):
if n < 2:
return False
i = 2
while i * i <= n:
if n % i == 0:
return False
i += 1
return Trueحسّن السرعة
افحص العدد 2 بشكل منفصل، ثم اختبر الأعداد الفردية فقط. يؤدي تخطي الأعداد الزوجية إلى تقليل العمل إلى النصف تقريبًا دون أي تعقيد إضافي.
if n % 2 == 0:
return n == 2التكلفة الزمنية
يعمل هذا الاختبار في زمن O(sqrt n). وبالنسبة إلى عدد واحد لا يتجاوز مليارًا، لا يتطلب ذلك سوى نحو 30,000 عملية بسيطة.
عدد واحد، لا أعداد متعددة
يتألق اختبار الجذر التربيعي عند التعامل مع استعلام واحد أو بضعة استعلامات. أما إذا احتجت إلى اختبار أولية نطاق كامل، فسيكون الغربال أسرع بكثير.
تجنّب مشكلة الجذر التربيعي
تجنّب المقارنة باستخدام i*i بدلًا من math.sqrt أخطاء التقريب التي قد تؤدي خطأً إلى قبول الأعداد الحدّية أو رفضها.
تحقق سريع
تأكّد من الحد الذي يجعل هذا الاختبار سريعًا.
مراجعة
يمكنك الآن اختبار أولية عدد واحد في زمن O(sqrt n)، وفحص القيم الصغيرة، وتخطي الأعداد الزوجية، واستخدام i*i للحفاظ على الدقة التامة. ✅
الأسئلة الشائعة
هل درس «اختبار الأولية حتى sqrt(n)» مجاني؟
نعم — نص درس «اختبار الأولية حتى sqrt(n)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Coding Interview Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
ماذا ستتعلم في «اختبار الأولية حتى sqrt(n)»؟
فحص عدد واحد بكفاءة تتمرن على Coding Interview Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Coding Interview Prep؟
لا تُشترط خبرة سابقة. Coding Interview Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «اختبار الأولية حتى sqrt(n)»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Coding Interview Prep هذا؟
نعم. كل درس في Coding Interview Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- GCD وLCM والخوارزمية الإقليدية
- اختبار الأولية حتى sqrt(n)
- غربال إراتوستينس
- التحليل إلى العوامل الأولية والقواسم