Se citește un număr natural n. Să se determine suma divizorilor pari ai săi.

Date de intrare:
Programul citește de la tastatură numărul n.

Date de iesire:
Programul afișează pe ecran numărul S, reprezentând suma divizorilor pari ai lui n.

Restricţii şi precizări:
0
Exemplu:
Intrare:
30
Ieșire:
48

Explicație;
Divizorii pari lui 30 sunt 2, 6, 10 și 30. Suma lor este 48.

Răspuns :

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.