سلام! سوال خوبی پرسیدی. میخواهیم برنامهای بنویسیم که اعدادی را که هم بر ۳ و هم بر ۷ بخشپذیر هستند (یعنی مضرب مشترک ۳ و ۷) در بازه ۲۱ تا ۹۲۶۱ پیدا کند و به صورت نزولی (از بزرگ به کوچک) چاپ کند.
راهنمایی کوتاه: باید اعداد مضرب ۲۱ (ک.م.م ۳ و ۷) را در بازه داده شده پیدا کرده و از بزرگ به کوچک مرتب کنیم.
گامبهگام:
- ۱) ابتدا کوچکترین مضرب مشترک (ک.م.م) ۳ و ۷ را پیدا کن. از آنجایی که ۳ و ۷ اعداد اول هستند، ک.م.م آنها برابر است با .
- ۲) حالا باید بزرگترین عدد مضرب ۲۱ را که کوچکتر یا مساوی ۹۲۶۱ است پیدا کنیم. برای این کار، عدد ۹۲۶۱ را بر ۲۱ تقسیم میکنیم و قسمت صحیح آن را در ۲۱ ضرب میکنیم.
- ۳) سپس باید کوچکترین عدد مضرب ۲۱ را که بزرگتر یا مساوی ۲۱ است پیدا کنیم. این عدد خود ۲۱ است.
- ۴) حالا یک حلقه مینویسیم که از بزرگترین مضرب ۲۱ شروع میشود و تا ۲۱ ادامه پیدا میکند و در هر مرحله ۲۱ واحد کم میشود.
- ۵) در هر مرحله از حلقه، عدد فعلی را چاپ میکنیم.
- ۶) برنامه را به زبان برنامهنویسی مورد نظرت پیادهسازی میکنیم.
پاسخ نهایی: برنامه باید تمام اعداد مضرب ۲۱ را در بازه ۲۱ تا ۹۲۶۱ به صورت نزولی چاپ کند. بزرگترین عدد در این بازه که بر ۲۱ بخشپذیر است، ۹۲۵۸ نیست، بلکه باید محاسبه کنیم: (دقیقاً بخشپذیر است). پس بزرگترین عدد ۹۲۶۱ خودش است. کوچکترین عدد ۲۱ است. پس اعداد از ۹۲۶۱ شروع میشوند و هر بار ۲۱ واحد کم میشوند تا به ۲۱ برسند.
مثال مشابه: اگر بازه ۱۰ تا ۱۰۰ بود و میخواستیم اعداد بخشپذیر بر ۲ و ۵ را چاپ کنیم (ک.م.م = ۱۰)، اعداد ۱۰۰، ۹۰، ۸۰، ...، ۱۰ را چاپ میکردیم.
اگر میخواهی بیشتر یاد بگیری: میتوانی برنامه را به زبانهای مختلف مثل Python، Java یا C++ بنویسی. در پایتون میتوانی از حلقه for با step منفی استفاده کنی. همچنین میتوانی مفهوم ک.م.م را برای اعداد دیگر تمرین کنی.