Informatică, întrebare adresată de Adelyn23, 9 ani în urmă

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 express
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;
}


MadalinaMadutaa: se poate si asa, e de 100 pct
MadalinaMadutaa: #include<iostream>

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