Rezolvare completă PbInfo #58 CMMDC

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

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema CMMDC:

#include <iostream>
using namespace std;

int main(){
    int a  ,b;
    cin >> a >> b;
    
    //aplicam Algoritmul lui EUCLID
    //cat timp b este nenul
    //  determinam restul impartirii lui a la b
    //  a devine b
    //  b devine restul determinat
    
    //aici, prentru comodititate folosim do .. while
    int r;
    if( b!= 0)
        do
        {
            r = a % b;
            a = b;
            b = r;
        }
        while( r );
    else
        if(a == 0) // pentru a prinde cazul particular in care ambele valori sunt 0
            a = -1;
    //rezultatul este ultimul impartitor. Atentie, el s-a mutat in a !!
    cout << a << endl;
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #58 CMMDC

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #58 CMMDC de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!