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

السؤال

نشر

هذا الكود يقوم باستخراج الاعداد الاولية 

  اقتباس

 

أظهر المزيد  
function ShowPrimes(limit) {




    for (let number = 2; number <= limit; number++) {

        let isPrime = true;

        for (let factor = 2; factor < number; factor++) {

            if (number % factor === 0) {

                isPrime = false;

                break;

            }

        }

        if (isPrime) console.log(number);

    }

}

ShowPrimes(500);

لماذا يعطي ناتج صحيح مع العلم ان المعامل = الرقم وليس اصغر منه

Recommended Posts

  • 0
نشر
  بتاريخ On 24‏/8‏/2020 at 22:26 قال مصطفى القباني:

لاحظ أن عند كون قيمة الرقم 2 وكذلك الفاكتور 2، لن يتم الدخول في الloop الداخلية من الأساس، لأن الشرط في الloop هو:

for (let factor = 2; factor < number; factor++)

الشرط هنا أن يكون factor أقل من number، وهو غير متحقق، لذلك لن يتم الدخول في الloop الداخلية في الحالة التي ذكرتها، وسيتم عمل console.log للرقم 2 على أنه prime، لأن قيمة isPrime مازالت true.

أظهر المزيد  

@محمد حسن21

هذه هي الإجابة الصحيحة. معذرةً فقد ظننت أني رأيت علامة التساوي في الشرط الموجود في كلتا الحلقتين.

  • 0
نشر (معدل)
  بتاريخ On 24‏/8‏/2020 at 19:29 قال Yomna Raouf:

هل يمكنك توضيح المقصود ب المعامل = الرقم و ليس أصغر منه؟؟ حتى أتمكن من مساعدتك.

أظهر المزيد  

اعني انا قم بوضع number % factor === 0 

وقمت بوضع قيمة الرقم 2 وكذلك factor = 2 فلماذا قام بتنفيذ الكود

تم التعديل في بواسطة محمد حسن21
  • 0
نشر
  بتاريخ On 24‏/8‏/2020 at 19:31 قال محمد حسن21:

اعني انا قم بوضع number % factor === 0 

وقمت بوضع قيمة الرقم 2 وكذلك factor فلماذا قام بتنفيذ الكود

أظهر المزيد  

السبب هو أن هذه العملية % تسمى باقي القسمة و باقي قسمة 2 % 2 تساوي صفر.

إذًا سيكون ناتج الشرط true لذلك عمل الكود.

  • 0
نشر
  بتاريخ On 24‏/8‏/2020 at 19:31 قال محمد حسن21:

اعني انا قم بوضع number % factor === 0 

وقمت بوضع قيمة الرقم 2 وكذلك factor = 2 فلماذا قام بتنفيذ الكود

أظهر المزيد  

لاحظ أن عند كون قيمة الرقم 2 وكذلك الفاكتور 2، لن يتم الدخول في الloop الداخلية من الأساس، لأن الشرط في الloop هو:

for (let factor = 2; factor < number; factor++)

الشرط هنا أن يكون factor أقل من number، وهو غير متحقق، لذلك لن يتم الدخول في الloop الداخلية في الحالة التي ذكرتها، وسيتم عمل console.log للرقم 2 على أنه prime، لأن قيمة isPrime مازالت true.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...