اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

من فضلك إرفاق البرنامج بشكل مكتوب و ليس كصورة.

عندما نريد اختبار هل العدد أولي أم لا، نختبر قابلية القسمة على الأعداد الأصغر منه، أي نعمل حلقة من 2 إلى ما قبل هذا العدد وليكن عداد الحلقة هو متغير i كما هو لديك، في حال قبل العدد num القسمة على اي i من المحال يعتبر العدد غير أولي لأن لديه قاسم مختلف عن 1 و عن نفسه.

لكن بغرض تحسين الخوارزمية، بتطبيق ملاحظة رياضية أنه لو قبل العدد القسمة على i فإن ناتج القسمة سيكون num/i 

طالما قمنا باختبار القسمة على i لاداع لاختبار القسمة أيضا على num/i ، أي نكتفي بنصف مجال الأعداد الصغير لاختبار القسمة، 

لماذا num/2 .. إن لم يقبل num القسمة على 2 فإنه لن يقبل القسمة على (num/2) وهو نفسه ناتج قسمة العدد عل 2.

مثلا عددي: ليكن لدينا 10 نريد التحقق هل هو اولي؟ نختبر المجال من 2 إلى 4 فقط، لأن 5 هي نفسها 10/2 اي في حال قبلت 10 القسمة على 2 فلماذا نختبر 10/5؟ 

نفس الشيء للعدد 13 لا يهمنا اختبار الأعداد التي هي أكبر من نصف هذا العدد لأن 13/7 و 13/8 بالطبع لن تقبل القسمة..

يمكنك عمل الحلقة ل أصغر من num/2 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...