👤

Se citesc succesiv numere naturale, până la apariţia valorii 0. Să se afişeze dintre
numerele citite, pe acelea care au cel mai mare numar de divizori proprii.


Răspuns :

Rezolvare C++:

# include<iostream>
using namespace std;
unsigned divizorip(unsigned x)
{
    unsigned d=0;
    for(int i=2;i<=x/2;i++)
        if(x%i==0) d++;
    return d;
}
int main()
{
    unsigned x,max,v[100],i=2,n;
    cin>>max; v[1]=max;
    while(cin>>x && x!=0)
    {
        v[i]=x;
        if(divizorip(max)<divizorip(x)) max=x;
        i++;
    }
    n=i-1;
    for(i=1;i<=n;i++)
       if(divizorip(v[i])==divizorip(max))
          cout<<v[i]<<" ";
    return 0;
}