fbpx

Problema #376 – Suma – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

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

Date de intrare

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

Date de ieşire

Programul afișează pe ecran numărul S, reprezentând suma divizorilor lui n.

Restricţii şi precizări

  • 0 < n ≤ 1.000.000.000

Exemplu

Intrare

6

Ieșire

12

Explicație

Divizorii lui 6 sunt 1, 2, 3, 6. Suma lor este 12.

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    if(n != 1){
        long long sum = 0;
        for(int d = 1; d * d <= n; ++d){
            if(n % d == 0){
                sum += d;
                sum += n / d;
            }
            if(d * d == n)
                sum -= d;
        }
        cout << sum;
    }
    else
        cout << 1;
    return 0;
}
Comentarii

S-ar putea sa iti placa