-
+
A va B sonlarning qiymatlari algoritm ishlash jarayonida muntazam ravishda o‟z
qiymatlarini o‟zgartirib turgani sababli, ularning dastlabki qiymatlarining
A, b
b≠0
C=a;
A=b;
B=c%b;
m/a
t
b
M=a*b
ko‟payttmasini M o‟;zgaruvchisiga yukladim.keyin esa EKUKni hisoblovchi
formula va EKUB ni hisoblovchi Evklid algoritmidan foydalandim.
Endi shu algoritmlarni Microsoft Visual Studio 2012 muhitida C# dasturlash
tilidagi kodlarini ko‟rib chiqamiz:
C#
class
Program
{
static
void
Main(
string
[] args)
{
Console
.Write(
"A="
);
int
A =
int
.Parse(
Console
.ReadLine());
Console
.Write(
"B="
);
int
B =
int
.Parse(
Console
.ReadLine());
int
C;
while
(B != 0) {
C = A;
A = B;
B = C % B;
}
Console
.WriteLine(
"A va B sonlarining EKUB i "
+ A +
" ga teng"
);
Console
.ReadKey();
}
}
Ushbu dastur kodi orqali dastlab biz A va B sonlarining EKUB ini hisoblash
imkoniyatiga ega bo‟lamiz.
Quyida esa yuqoridagi kodga biroz qo‟shimchalar qo‟shish natijasida EKUK ni
hisoblab beruvchi dasturga ega bo‟lamiz:
C#
class
Program
{
static
void
Main(
string
[] args)
{
Console
.Write(
"A="
);
int
A =
int
.Parse(
Console
.ReadLine());
Console
.Write(
"B="
);
int
B =
int
.Parse(
Console
.ReadLine());
int
M = A * B;
int
C;
while
(B != 0) {
C = A;
A = B;
B = C % B;
}
Console
.WriteLine(
"A va B sonlarining EKUK i "
+ M / A +
" ga teng"
);
Console
.ReadKey();
}
}
2.3. O’ZARO TUB SONLARNI TOPISH ALGORITMI.
Bizga ma‟lumki, o‟zaro tub sonlar bu ularning Eng Katta Umumiy Bo‟luvchisi
ya‟ni, EKUB I 1 ga teng bo‟lgan sonlardir. Asosan, o‟zaro tub sonlarga misol qilib
ketma-ket keluvchi sonlarni misol qilib keltirsak bo‟ladi. Ya‟ni, O‟zaro tub
sonlarga misol (14; 15), (15; 16), (20; 21), ……………
Demak, berilgan sonlarni o‟zaro tublikka tekshirish uchun ularning EKUB ini 1 ga
teng ekanligini tekshirish kifoya ekan:
-
+
A, b
b≠0
C=a;
A=b;
B=c%b;
B
1
+
-
Algoritmdan ham ko‟rinib turibdiki EKUB ni hisoblash uchun Evklid
algoritmiga faqatgina birgina qo‟shimcha qo‟shdim, ya‟ni EKUB ini 1 ga
tengligini tekshirdim. Endi ushbu algoritm asosida Microsoft Visual Studio 2012
muhitida C# dasturlash tilidagi kodini ko‟rib chiqsak:
C#
class
Program
{
static
void
Main(
string
[] args)
{
Console
.Write(
"A="
);
int
A =
int
.Parse(
Console
.ReadLine());
Console
.Write(
"B="
);
int
B =
int
.Parse(
Console
.ReadLine());
int
C;
while
(B != 0) {
O’zarO tub
t
1
A==1
O’zarO tub
emas
C = A;
A = B;
B = C % B;
}
if
(A == 1)
{
Console
.WriteLine(
"A va B sonlari o'zaro tub sonlardir"
);
}
else
{
Console
.WriteLine(
"A va B sonlari o'zaro tub sonlar emas"
);
}
Console
.ReadKey();
}
}
III. XULOSA.
Men ushbu kurs ishini yozish davomida tub sonni toppish algoritmini va uning
Microsoft Visual Studio 2012 muhitidagi dasturini o‟rganib chiqdim. Ketyin esa,
o‟zaro tub sonlarni toppish algoritmini o‟rgandim. O‟zaro tub sonlarni toppish
uchun ularning EKUB hisobladim. EKUB ni esa mashxur bo‟lgan, o‟z navbatida
sodda algoritm deb hisoblangan Evklid algoritmini qo‟lladim. Quyida berilgan N
sonini tublikka tekshiruvchi kod va undan olgan natijalari keltirilgan:
Dasturni tekshirib ko‟rish uchun men dastlab, 45 sonini kiritdim, va TUB EMAS
degan to‟g‟ri natijaga eg bo‟ldim. Keyin esa 53 sonini kiritdim va undan TUB
degan natijani oldim. Demak, sonni tublikka tekshiruvchi daturim to‟g‟ri ishlayapti
ekan.
Quyida ikkita sonning EKUB ini va EKUK ini bir vaqtda hisoblab beruvchi
dasturni va undan olgan natijalarimni keltirganman:
Berilgan ikkita A va B sonlarini o‟zaro tub yoki tub emasligini tekshirish uchun
esa quyidagi dasturni tuzdim:
Ushbu dasturga kiritilgan ixtiyoriy ikkita butun sonni o‟zaro tub yoki o‟zaro tub
emasligini tekshirib olish mumkin. Men 24 va 55 sonlarini tekshirib ko‟rdim:
IV.
Foydalanilgan Adabiyotlar
1. В.И.Игошин. Математическаya логика и теориya алгоритмов.
Издательство Саратовского Университета,1991.209-211с.
2. О.П.Kузнецов. Дискретнаya математика длya инженера.
М:Энергоатомиздат, 1982, 144-155 с.
3. Н.А.Kриницкий,Г.А.Mиронов, Г.Д. Фролов. Программирование и
алгоритмические yaзыки,M:Наука,1979, 63-66 с.
4. E.З. Любимский, В.В. Mартынюк, Н.П.Tрифонов
Программирование, M:Наука, 1980,13-17 с.
5.
http://structur.h1.ru/hash.htm
6
.
http://intsys.msu.ru/stuff/vnosov/theorald.htm#top
7.
https://yordam.uz/199/tub-sonlarni-topish-algoritmi
8.
https://www.texnoman.uz/post/berilgan-n-sonigacha-bolgan-tub-sonlarni-
topishning-eng-samarali-algoritmi.html
Do'stlaringiz bilan baham: |