Sari la conținut

Problema #61 – AfisareDivizoriComuni – Rezolvari PBInfo

de Mihai-Alexandru 1 min citire

Cerinţa

Să se scrie un program care afișează divizorii comuni ai 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, în ordine crescătoare, divizorii comuni ai numerelor a și b, separați printr-un spațiu.

Restricţii şi precizări

  • 0 < a, b < 1.000.000.000

Exemplu1:

Intrare

24 36

Ieșire

1 2 3 4 6 12
#include <bits/stdc++.h>
using namespace std;
void rezolvare()
{
    unsigned long long a,b,r,d;
    cin>>a>>b;
    if(a==0) d=b;
    else
        if(b==0) d=a;
    else
    {while(b!=0)
    {
        r=a%b;
        a=b;
        b=r;
    }
    d=a;
    }
    for(int i=1;i<=d;i++)
    {
        if(d%i==0) cout<<i<<" ";
    }
}
int main()
{
    rezolvare();
    return 0;
}