until a = 1000;
end.
2- misol. n soning barcha bo’luvchilarini aniqlovchi dastur tuzilsin.
Bunday masala berilganda talabalar ko’pincha quyidagi yechish usulini taklif etishadi.
1 dan to n gacha bo’lgan barcha natural sonlarni ko’rib chiqish kerak, agar ulardan birontasi n soninig bo’luvchisi bo’lsa, uni ekranga chiqarish kerak. Masalan 36 soni uchun tekshirish maqsadida 1, 2, 3, ..., 36 sonlarini olamiz va ulardan 36 ning bo’luvchilarini tanlab olamiz. Bo’luvchilar quyidagilardir: 1, 2, 3, 4, 6, 9, 12, 18 va 36. Bunday usuldan foydalanish mumkin. Lekin, diqqat bilan 36 ning bo’luvchilariga qarab chiqsangiz, bularning barchasi 1 dan to 18 gacha, ya’ni 36 ning yarmigacha bo’lgan oraliqda joylashganligini ko’rasiz, faqatgina oxirgi bo’luvchi - sonning o’zidir.
Mantiqan o’ylaganda ham, shunga amin bo’lamizki, bo’luvchilar aynan: 1 dan n/2 gacha bo’lgan oraliqda joylashadi.
Agar sonning yarmidan ham katta bo’luvchi bor degan fikr tug’ilsa, uni 2 ga ko’paytirib berilgan sondan katta son hosil qilamiz. Shunday qilib, sonning o’zidan tashqari barcha bo’luvchilari 1 dan n/2 gacha bo’lgan oraliqda joylashishi ayon bo’ladi, demak sonning bo’luvchilarini aynan shu oraliqdan tekshirish kerak. Bu yerdan dasturni tuzish rejasi kelib chiqadi: 1 dan n/2 gacha bo’lgan sikl tashkil etish; agar nson ushbu oraliqdagi biror-bir songa bo’linsa, u holda ushbu bo’luvchi ekranga chiqarilsin; sikl davom ettirilsin; ekranga sonning o’zi chiqarilsin.
Dostları ilə paylaş: |