محمد حسن21 نشر 24 أغسطس 2020 أرسل تقرير نشر 24 أغسطس 2020 هذا الكود يقوم باستخراج الاعداد الاولية اقتباس 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); لماذا يعطي ناتج صحيح مع العلم ان المعامل = الرقم وليس اصغر منه 1 اقتباس
0 Yomna Raouf نشر 24 أغسطس 2020 أرسل تقرير نشر 24 أغسطس 2020 بتاريخ 9 ساعات قال مصطفى القباني: لاحظ أن عند كون قيمة الرقم 2 وكذلك الفاكتور 2، لن يتم الدخول في الloop الداخلية من الأساس، لأن الشرط في الloop هو: for (let factor = 2; factor < number; factor++) الشرط هنا أن يكون factor أقل من number، وهو غير متحقق، لذلك لن يتم الدخول في الloop الداخلية في الحالة التي ذكرتها، وسيتم عمل console.log للرقم 2 على أنه prime، لأن قيمة isPrime مازالت true. @محمد حسن21 هذه هي الإجابة الصحيحة. معذرةً فقد ظننت أني رأيت علامة التساوي في الشرط الموجود في كلتا الحلقتين. 1 اقتباس
0 Yomna Raouf نشر 24 أغسطس 2020 أرسل تقرير نشر 24 أغسطس 2020 هل يمكنك توضيح المقصود ب المعامل = الرقم و ليس أصغر منه؟؟ حتى أتمكن من مساعدتك. اقتباس
0 محمد حسن21 نشر 24 أغسطس 2020 الكاتب أرسل تقرير نشر 24 أغسطس 2020 (معدل) بتاريخ 2 دقائق مضت قال Yomna Raouf: هل يمكنك توضيح المقصود ب المعامل = الرقم و ليس أصغر منه؟؟ حتى أتمكن من مساعدتك. اعني انا قم بوضع number % factor === 0 وقمت بوضع قيمة الرقم 2 وكذلك factor = 2 فلماذا قام بتنفيذ الكود تم التعديل في 24 أغسطس 2020 بواسطة محمد حسن21 اقتباس
0 Yomna Raouf نشر 24 أغسطس 2020 أرسل تقرير نشر 24 أغسطس 2020 بتاريخ 8 ساعات قال محمد حسن21: اعني انا قم بوضع number % factor === 0 وقمت بوضع قيمة الرقم 2 وكذلك factor فلماذا قام بتنفيذ الكود السبب هو أن هذه العملية % تسمى باقي القسمة و باقي قسمة 2 % 2 تساوي صفر. إذًا سيكون ناتج الشرط true لذلك عمل الكود. اقتباس
0 مصطفى القباني نشر 24 أغسطس 2020 أرسل تقرير نشر 24 أغسطس 2020 بتاريخ 2 ساعات قال محمد حسن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. اقتباس
السؤال
محمد حسن21
هذا الكود يقوم باستخراج الاعداد الاولية
لماذا يعطي ناتج صحيح مع العلم ان المعامل = الرقم وليس اصغر منه
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.