#include
using namespace std;
int NOD (int a, int b)
{
while (a != b)
{
if (a > b)
a -= b;
else
b -= a;
}
return a;
}
int main ()
{long long int n,m,a;
cin>>n>>m;
a=NOD (n, m);
cout<<a<<endl;
return 0;
}
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
#include
using namespace std;
int main()
{
int a, b;
cout <> a >> b;
while(a != b)
{
if(a > b)
a -= b;
else
b -= a;
}
cout << "EBOB = " << a;
return 0;
}
Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır
Verilmiş cavablar və yazılan şərhlər (6 cavab var)
0
Salam. Buyurun. Rekursiya ilə həll.
#include using namespace std; int NOD (int a, int b) { while (a != b) { if (a > b) a -= b; else b -= a; } return a; } int main () {long long int n,m,a; cin>>n>>m; a=NOD (n, m); cout<<a<<endl; return 0; }0
#include using namespace std; int main() { int a, b; cout <> a >> b; while(a != b) { if(a > b) a -= b; else b -= a; } cout << "EBOB = " << a; return 0; }-2
Proqram düz işləyir, amma 8-ci sətirdə sintaksis səhv var
əvəzinə
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 #include using namespace std; int main() { //ededleri yadda saxlamaq ucun int a, b; //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; //ededleri istifadecinden alaq cout <> a >> b; //birinci ededin bolenlerini ve sayini hesablayaq bola_say = 0; i = 2; while (a != 1) { while (a%i == 0) { bola[bola_say] = i; bola_say++; a /= i; } i++; } //birinci ededin bolenlerini cap ededk cout << "\nBirinci ededinin bolenleri: \n"; for (i = 0; i < bola_say; ++i) cout << bola[i] << " "; cout << "\n"; //ikinci ededin bolenlerini ve sayini hesablayaq bolb_say = 0; i = 2; while (b != 1) { while (b%i == 0) { bolb[bolb_say] = i; bolb_say++; b /= i; } i++; } //ikinci ededin bolenlerini cap ededk cout << "\nIkinci ededinin bolenleri: \n"; for (i = 0; i < bolb_say; ++i) cout << bolb[i] << " "; cout << "\n"; //her iki ededin bolenleri arasinda ortaq olanlari ve sayini tapaq //bunun ucun ikiqat dovrden istifade etmeliyik //eyni ortaq boleni iki defe hesablamamaq ucun tapdiqdan sonra //1-e menimsedeceyik ort_say = 0; for (i=0; i<bola_say; ++i) for (j=0; j<bolb_say; ++j) if (bolb[j] == bola[i]) { ort[ort_say] = bolb[j]; bolb[j] = 1; ort_say++; break; } //ortaq bolenleri cap edek cout <<"\nHer iki ededin ortaq bolenleri: \n"; for (i = 0; i < ort_say; ++i) cout << ort[i] << " "; //ortaq bolenlerin hasilini, yeni ebob -u tapaq ebob = 1; for (i = 0; i < ort_say; ++i) ebob *= ort[i]; cout <<"\n\nHer iki ededin EBOB -u = " << ebob; return 0; }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
#include #include using namespace std; int main() { cout << __gcd(100,24); return 0; }Sual verin
Cavab verin