Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
149
for sikli n, n+1, … m tubligini oxirida tekshiradi.
num qiymati
tubligini
har bir
tashqi siklda tekshiriladi. Mantiqan biz tub sonlarni bilamiz. Dastlab biz
prime
qiymatini
true (rost) deb
kiritamiz. Ichki
while siklida har bir son
tekshiriladi agar
num ning
bo‘luvchisi bo‘lsa
davom etadi aks holda
prime false ga teng bo‘ladi.
while sikli tugagandan keyin mantiqiy
prime qiymati
boshqa son yo‘qligini ko‘rsatadi va o‘sha son konsolga chiqariladi.
Agar n=3 va m=75 bo‘lsa quyidagi natija chiqadi:
6.3. Baxtli sonlarga – misol
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
150
Boshqa misol orqali biz ikki va undan ortiq ichma –
ich joylashgan sikllarni
ko‘rishimiz mumkin. Bizning maqsadimiz ABCD sonlarini aniqlash. Agar A+B=C+D
bo‘lsa (biz bularni omadli raqamlar ) deb ataymiz. Biz buni to‘rtta
for siklida
bajaramiz. Birinchi sikl minglarni tasvirlaydi. Sikl 1 dan boshlanadi va 0 da to‘xtaydi.
Biz yuzlar, o‘nlar va minglar deb belgilaymiz. Biz omadli
raqamlarni ichki sikldan
tekshirib kelamiz va oxirida konsolga chiqaramiz. Bu yerda dastur kodini kщrib
chiыamiz:
Bu yerda natija qisman chiqarilgan (butub natija juda uzun):
6.4. 6/49 Lotereya masalasi
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
151
Bu misolda biz “6/49” o‘yinida mumkin bo‘lgan
barcha kombinatsiyalar
mavjudligini topamiz. Biz 6 dan farq qiluvchi hamma sonlarni topamiz va ko‘rsatamiz
[1…49] oralig‘idagi 6 talik turli raqamlar o‘rin almashtirishlar qiymatlar sonini topib
chop etishimiz kerak. Biz 6 ta for siklidan foydalanamiz. Oldingi misolga o‘xshamagan
holda sonlar takrorlanmaydi. Sonlar takrorlanmasligi uchun har bir n – ketma –
ketlik n-1 – ketma –ketlikdan katta bo‘ladigan qilib yozishimiz kerak. Shuning uchun
mavjud sikl 1 dan boshlamaydi lekin oldingi siklga +1 ni qo‘shgan sondan boshlaydi.
Biz birinchi siklni 44 ga yetguncha olib borishimiz kerak.keyingisi 45 ga yetguncha va
hakozo…agar biz hamma sikllarni 49 gacha qilsak biz bu kombinatsiyalarda 1 xil
qiymat olamiz. Shu sababli har bir sikl o‘zidan oldingi siklga 1 ni qo‘shib oladi. Dastur
quyidagicha
Hammasi to‘g‘ri berilgan. Keling yuqoridagi dasturni ishlatib ko‘ramiz. Bu
dastur ishlaydiganga o‘xshaydi ammo bir muammo bor. Kombinatsiya juda ko‘p va
dastur to‘xtamaydi (u juda sekin va juda ko‘p vaqt oladi). Shundan “6/49”
tanlanganini tushinish mumkin. Chunki bunda juda ko‘p kombinatsiyalar mavjud.
Yuqoridagi o‘yinda hamma kombinatsiyalarning sonini hisoblashning
tezligini kutib
Dasturlash tillari va axborot-kommunikatsiya texnologiyalari 1-semestr
152
turibmiz, vaholanki uni chop etish emas. Bu tezlik chop qilingan natijalarni
qisqartirishi natijasida dastur kutilmagan darajada tez tugaydi.