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
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;
}
#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
Matematică,
8 ani în urmă
Geografie,
8 ani în urmă
Alte limbi străine,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă