ƏBOB. Salam iki ədədin əbobunun tapılması proqramı c++ da necə yazılır? .
0
Salam. Buyurun. Rekursiya ilə həll.
1
#include
2
using namespace std;
3
int NOD (int a, int b)
4
{
5
while (a != b)
6
7
if (a > b)
8
a -= b;
9
else
10
b -= a;
11
}
12
return a;
13
14
15
16
17
int main ()
18
{long long int n,m,a;
19
cin>>n>>m;
20
a=NOD (n, m);
21
cout<<a<<endl;
22
23
return 0;
24
int main()
int a, b;
cout <> a >> b;
while(a != b)
if(a > b)
cout << "EBOB = " << a;
-2
Proqram düz işləyir, amma 8-ci sətirdə sintaksis səhv var
cout a >> b;
əvəzinə
cin >> a >> b;
olmalıdır. Həm də sadəcə həlli vermək düzgün deyil, imkan daxilində alqoritmi də izah etmək yaxşı olar.
-1
//iki ededin EBOB -nu hesablamaq ucun proqram
//ededleri yadda saxlamaq ucun
//bolenlerin yadda saxlamaq ucun
int bola[100], bolb[100];
//bolenlerin sayini yadda saxlamaq ucun
int bola_say, bolb_say;
//ortaq bolenleri yadda saxlamaq ucun cerge ve say
int ort[100], ort_say;
//ebob
int ebob;
//saygac
int i, j;
25
26
//ededleri istifadecinden alaq
27
28
29
//birinci ededin bolenlerini ve sayini hesablayaq
30
bola_say = 0;
31
32
i = 2;
33
34
while (a != 1) {
35
36
while (a%i == 0) {
37
bola[bola_say] = i;
38
bola_say++;
39
a /= i;
40
41
42
i++;
43
44
45
//birinci ededin bolenlerini cap ededk
46
cout << "\nBirinci ededinin bolenleri: \n";
47
48
for (i = 0; i < bola_say; ++i)
49
cout << bola[i] << " ";
50
51
cout << "\n";
52
53
//ikinci ededin bolenlerini ve sayini hesablayaq
54
bolb_say = 0;
55
56
57
58
59
while (b != 1) {
60
61
while (b%i == 0) {
62
bolb[bolb_say] = i;
63
bolb_say++;
64
b /= i;
65
66
67
68
69
70
//ikinci ededin bolenlerini cap ededk
71
cout << "\nIkinci ededinin bolenleri: \n";
72
73
for (i = 0; i < bolb_say; ++i)
74
cout << bolb[i] << " ";
75
76
77
78
//her iki ededin bolenleri arasinda ortaq olanlari ve sayini tapaq
79
//bunun ucun ikiqat dovrden istifade etmeliyik
80
//eyni ortaq boleni iki defe hesablamamaq ucun tapdiqdan sonra
81
//1-e menimsedeceyik
82
ort_say = 0;
83
84
for (i=0; i<bola_say; ++i)
85
for (j=0; j<bolb_say; ++j)
86
if (bolb[j] == bola[i]) {
87
ort[ort_say] = bolb[j];
88
bolb[j] = 1;
89
ort_say++;
90
break;
91
92
93
//ortaq bolenleri cap edek
94
cout <<"\nHer iki ededin ortaq bolenleri: \n";
95
for (i = 0; i < ort_say; ++i)
96
cout << ort[i] << " ";
97
98
//ortaq bolenlerin hasilini, yeni ebob -u tapaq
99
ebob = 1;
100
101
102
ebob *= ort[i];
103
104
cout <<"\n\nHer iki ededin EBOB -u = " << ebob;
105
106
Icra nəticəsi: Zehmet olmasa her iki ededi daxil edin 48 72
Birinci ededinin bolenleri: 2 2 2 2 3
Ikinci ededinin bolenleri: 2 2 2 3 3
Her iki ededin ortaq bolenleri: 2 2 2 3
Her iki ededin EBOB -u = 24
P.S. – Cavablar.net -ə müraciət.
1) Kodun sintaksis rəngləməsi imkanını əlavə etmək
2) Kansol çıxış nəticələrini daxil etmək üçün teq əlavə etmək
3) Mənbə kodu buferə köçürmək üçün düymə əlavə etmək
sadece funksiya ile ebob = __gcd(a,b); kitabxanasini qeyd eleyin
cout << __gcd(100,24);
Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.
Nicat97 cavab verdi - ilkaddimlar.com-a nə oldu? (1 gün əvvəl)
nicatmemmedli cavab verdi - Proqramlaşdırma - fəlsəfə (5 gün əvvəl)
nicatmemmedli cavab verdi - ilkaddimlar.com-a nə oldu? (5 gün əvvəl)
Software Developer cavab verdi - ilkaddimlar.com-a nə oldu? (15 gün əvvəl)
E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (24 gün əvvəl)
Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (26 gün əvvəl)
E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (26 gün əvvəl)
E. Hacı cavab verdi - Telefon almışam kamerasında ləkə var qaytarmaq istəyirəm, mağaza qaytarmır (26 gün əvvəl)
Software Developer cavab verdi - Rus dili yatırımı (27 gün əvvəl)
Cənab cavab verdi - Rus dili yatırımı (27 gün əvvəl)
Cənab cavab verdi - Rus dili yatırımı (28 gün əvvəl)
Software Developer cavab verdi - Rus dili yatırımı (28 gün əvvəl)
Azad cavab verdi - Windows 11 FPS drop (41 gün əvvəl)
Verilmiş cavablar və yazılan şərhlər (6 cavab var)
0
Salam. Buyurun. Rekursiya ilə həll.
1
#include
2
using namespace std;
3
int NOD (int a, int b)
4
{
5
while (a != b)
6
{
7
if (a > b)
8
a -= b;
9
else
10
b -= a;
11
}
12
return a;
13
}
14
15
16
17
int main ()
18
{long long int n,m,a;
19
cin>>n>>m;
20
a=NOD (n, m);
21
cout<<a<<endl;
22
23
return 0;
24
}
0
1
#include
2
using namespace std;
3
4
int main()
5
{
6
int a, b;
7
8
cout <> a >> b;
9
10
while(a != b)
11
{
12
if(a > b)
13
a -= b;
14
else
15
b -= a;
16
}
17
18
cout << "EBOB = " << a;
19
return 0;
20
}
-2
Proqram düz işləyir, amma 8-ci sətirdə sintaksis səhv var
1
cout a >> b;
əvəzinə
1
cin >> a >> b;
olmalıdır. Həm də sadəcə həlli vermək düzgün deyil, imkan daxilində alqoritmi də izah etmək yaxşı olar.
-1
1
//iki ededin EBOB -nu hesablamaq ucun proqram
2
3
#include
4
using namespace std;
5
6
int main()
7
{
8
//ededleri yadda saxlamaq ucun
9
int a, b;
10
11
//bolenlerin yadda saxlamaq ucun
12
int bola[100], bolb[100];
13
14
//bolenlerin sayini yadda saxlamaq ucun
15
int bola_say, bolb_say;
16
17
//ortaq bolenleri yadda saxlamaq ucun cerge ve say
18
int ort[100], ort_say;
19
20
//ebob
21
int ebob;
22
23
//saygac
24
int i, j;
25
26
//ededleri istifadecinden alaq
27
cout <> a >> b;
28
29
//birinci ededin bolenlerini ve sayini hesablayaq
30
bola_say = 0;
31
32
i = 2;
33
34
while (a != 1) {
35
36
while (a%i == 0) {
37
bola[bola_say] = i;
38
bola_say++;
39
a /= i;
40
}
41
42
i++;
43
}
44
45
//birinci ededin bolenlerini cap ededk
46
cout << "\nBirinci ededinin bolenleri: \n";
47
48
for (i = 0; i < bola_say; ++i)
49
cout << bola[i] << " ";
50
51
cout << "\n";
52
53
//ikinci ededin bolenlerini ve sayini hesablayaq
54
bolb_say = 0;
55
56
57
i = 2;
58
59
while (b != 1) {
60
61
while (b%i == 0) {
62
bolb[bolb_say] = i;
63
bolb_say++;
64
b /= i;
65
}
66
67
i++;
68
}
69
70
//ikinci ededin bolenlerini cap ededk
71
cout << "\nIkinci ededinin bolenleri: \n";
72
73
for (i = 0; i < bolb_say; ++i)
74
cout << bolb[i] << " ";
75
76
cout << "\n";
77
78
//her iki ededin bolenleri arasinda ortaq olanlari ve sayini tapaq
79
//bunun ucun ikiqat dovrden istifade etmeliyik
80
//eyni ortaq boleni iki defe hesablamamaq ucun tapdiqdan sonra
81
//1-e menimsedeceyik
82
ort_say = 0;
83
84
for (i=0; i<bola_say; ++i)
85
for (j=0; j<bolb_say; ++j)
86
if (bolb[j] == bola[i]) {
87
ort[ort_say] = bolb[j];
88
bolb[j] = 1;
89
ort_say++;
90
break;
91
}
92
93
//ortaq bolenleri cap edek
94
cout <<"\nHer iki ededin ortaq bolenleri: \n";
95
for (i = 0; i < ort_say; ++i)
96
cout << ort[i] << " ";
97
98
//ortaq bolenlerin hasilini, yeni ebob -u tapaq
99
ebob = 1;
100
101
for (i = 0; i < ort_say; ++i)
102
ebob *= ort[i];
103
104
cout <<"\n\nHer iki ededin EBOB -u = " << ebob;
105
return 0;
106
}
Icra nəticəsi:
Zehmet olmasa her iki ededi daxil edin
48 72
Birinci ededinin bolenleri:
2 2 2 2 3
Ikinci ededinin bolenleri:
2 2 2 3 3
Her iki ededin ortaq bolenleri:
2 2 2 3
Her iki ededin EBOB -u = 24
0
P.S. – Cavablar.net -ə müraciət.
1) Kodun sintaksis rəngləməsi imkanını əlavə etmək
2) Kansol çıxış nəticələrini daxil etmək üçün teq əlavə etmək
3) Mənbə kodu buferə köçürmək üçün düymə əlavə etmək
1
sadece funksiya ile

ebob = __gcd(a,b);
kitabxanasini qeyd eleyin
1
#include
2
#include
3
using namespace std;
4
int main()
5
{
6
cout << __gcd(100,24);
7
return 0;
8
}
Sual verin
Cavab verin