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

Să se scrie un program care afișează divizorii comuni ai două numere naturale citite de la tastatură.

Răspunsuri la întrebare

Răspuns de express
3
Ti-am facut un program C++ eficient de afisare a divizorilor. Daca doresti ca divizorii afisati sa fie in ordine crescatoare, se face o operatie de sortare. Daca nu ai nevoie de acest lucru poti sterge sort-ul. Succes!
#include <iostream>
#include <algorithm>
using namespace std;
int a,b,d,v[10000],k,i;
bool ok;
int main()
{
    cin>>a>>b;

     for(d=1;d*d<a;d++)
        if(a%d==0) v[++k]=d, v[++k]=a/d;
     if(d*d==a) v[++k]=d;

     for(d=1;d*d<b;d++)
        if(b%d==0) v[++k]=d, v[++k]=b/d;
     if(d*d==b) v[++k]=d;

    sort(v+1,v+k+1);


    for(i=1;i<k;i++)
      if(v[i]==v[i+1]) cout<<v[i]<<" ";
    return 0;
}


Bebe174: Multumesc!
Alte întrebări interesante