Informatică, întrebare adresată de Utilizator anonim, 9 ani în urmă

AfisareDivizoriComuni problema 61 de pe pbinfo
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 radutanasa86
3
#include<bits/stdc++.h>using namespace std;int x,y,divi[105];int Cmmdc(int x,int y){    int r;    while(y)    {        r=x%y;        x=y;        y=r;    }    return x;}void Afisare(int x){    int i,lg;    lg=0;    for(i=1;i*i<x;i++)        if(x%i==0)        {            divi[++lg]=i;            divi[++lg]=x/i;        }    if(i*i==x)        divi[++lg]=i;    sort(divi+1,divi+lg+1);    for(i=1;i<=lg;i++)        cout<<divi[i]<<" ";}int main(){    int sol;    cin>>x>>y;    sol=Cmmdc(x,y);    Afisare(sol);}

radutanasa86: #include<bits/stdc++.h>
using namespace std;
int x,y,divi[105];
int Cmmdc(int x,int y)
{
int r;
while(y)
{
r=x%y;
x=y;
y=r;
}
return x;
}
void Afisare(int x)
{
int i,lg;
lg=0;
for(i=1;i*i<x;i++)
if(x%i==0)
{
divi[++lg]=i;
divi[++lg]=x/i;
}
if(i*i==x)
divi[++lg]=i;
sort(divi+1,divi+lg+1);
for(i=1;i<=lg;i++)
cout<<divi[i]<<" ";
}
int main()
{
int sol;
cin>>x>>y;
sol=Cmmdc(x,y);
Afisare(sol);
}
Alte întrebări interesante