Cerinţa
Să se scrie un program care să determine cel mai mare divizor comun a două numere naturale citite de la tastatură.
Date de intrare
Programul citește de la tastatură două numere naturale a și b.
Date de ieşire
Programul afișează pe ecran numărul x, cel mai mare divizor comun al numerelor a și b.
Restricţii şi precizări
0 <= a, b < 1.000.000.000
dacă ambele numere sunt egale cu 0 se va afișa valoarea -1
Exemplu
Intrare
24 36
Ieșire
12
eu am inccercat o rezolvare.. Dar imi da 80 de puncte...
#include
using namespace std;
int main()
{
int a,b,x;
cin>>a;
cin>>b;
x=a%b;
while(x)
{
a=b;
b=x;
x=a%b;
}
cout<
return 0;
}
Ma puteti ajuta?
Anexe:
Răspunsuri la întrebare
Răspuns de
18
Nu ai pus conditiile...ai trei conditii diferite. Ai aici sursa C++ de 100p. Succes!
#include <iostream>
using namespace std;
int d,i,r;
int main()
{
cin >> d;
cin >> i;
if((d==0)&&(i==0)) {cout<<-1; return 0;}
if((d==0)&&(i>0)) {cout<<i; return 0;}
if((i==0)&&(d>0)) {cout<<d; return 0;}
r=d%i;
while(r!=0)
{
d=i;
i=r;
r=d%i;
}
cout <<i;
return 0;
}
#include <iostream>
using namespace std;
int d,i,r;
int main()
{
cin >> d;
cin >> i;
if((d==0)&&(i==0)) {cout<<-1; return 0;}
if((d==0)&&(i>0)) {cout<<i; return 0;}
if((i==0)&&(d>0)) {cout<<d; return 0;}
r=d%i;
while(r!=0)
{
d=i;
i=r;
r=d%i;
}
cout <<i;
return 0;
}
MadalinaMadutaa:
se poate si asa, e de 100 pct
using namespace std;
int main()
{
int a,b,r;
cin>>a>>b;
while(b>0){
r=a%b;
a=b;
b=r;
}
if(a==0 && b==0)
cout<<"-1"<<'\n';
else
cout<<a<<'\n';
}
Alte întrebări interesante
Istorie,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Biologie,
9 ani în urmă
Limba română,
9 ani în urmă