Răspuns:
#include <iostream>
using namespace std;
int main()
{
unsigned n,d;
cin>>n;
for(d=2;d<=n;d+=2)
{
if(n%d==0 && d%2==0)
cout<<d<<' ';
}
return 0;
}
Sau daca vrei mai optimizat d.p.d.v al timpului de executare, iti afisez urmatorul algoritm, doar ca iti va afisa divizorii haotic(dar cum nu specifica in enunt ca divizorii sa fie ordonati crescator, si acest algoritm este valabil)
#include <iostream>
using namespace std;
int main()
{
unsigned n,d;
cin>>n;
for(d=1;d*d<=n;d++)
{
if(n%d==0)
{
if(d%2==0)
cout<<d<<' ';
if((n/d)%2==0)
cout<<n/d<<' ';
}
}
return 0;
}
Explicație: