محمد حسن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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Yomna Raouf نشر 24 أغسطس 2020 أرسل تقرير مشاركة نشر 24 أغسطس 2020 هل يمكنك توضيح المقصود ب المعامل = الرقم و ليس أصغر منه؟؟ حتى أتمكن من مساعدتك. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 محمد حسن21 نشر 24 أغسطس 2020 الكاتب أرسل تقرير مشاركة نشر 24 أغسطس 2020 (معدل) بتاريخ 2 دقائق مضت قال Yomna Raouf: هل يمكنك توضيح المقصود ب المعامل = الرقم و ليس أصغر منه؟؟ حتى أتمكن من مساعدتك. اعني انا قم بوضع number % factor === 0 وقمت بوضع قيمة الرقم 2 وكذلك factor = 2 فلماذا قام بتنفيذ الكود تم التعديل في 24 أغسطس 2020 بواسطة محمد حسن21 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Yomna Raouf نشر 24 أغسطس 2020 أرسل تقرير مشاركة نشر 24 أغسطس 2020 بتاريخ 8 ساعات قال محمد حسن21: اعني انا قم بوضع number % factor === 0 وقمت بوضع قيمة الرقم 2 وكذلك factor فلماذا قام بتنفيذ الكود السبب هو أن هذه العملية % تسمى باقي القسمة و باقي قسمة 2 % 2 تساوي صفر. إذًا سيكون ناتج الشرط true لذلك عمل الكود. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
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. اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
محمد حسن21
هذا الكود يقوم باستخراج الاعداد الاولية
لماذا يعطي ناتج صحيح مع العلم ان المعامل = الرقم وليس اصغر منه
رابط هذا التعليق
شارك على الشبكات الإجتماعية
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.