Răspuns:
#include <iostream>
using namespace std;
int main ()
{
int n;
cin >> n;
int sum = 0;
if(n % 2 == 0){
sum = n;
}
for(int i = 2;i<=n/2;i++){
if(n%i == 0 && i %2 ==0){
sum+=i;
}
}
cout<<sum;
return 0;
}
Explicație:
Daca numarul este par il adaugam direct la suma pentru a parcurge numerele de la 2 la n/2(pentru a nu parcurge tot numarul => o eficienta mai buna).
Daca numarul se imparte la unul din numerele de la 2 pana la n/2 atunci acesta este divizor, iar daca acesta este par il adaugam la suma.