Suma Divizorilor Impari

Se citește un număr natural n. Să se determine suma divizorilor impari ai 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 impari ai lui n.
Restricţii şi precizări

0 < n < 1.000.000.000

Exemplu

Intrare

30

Ieșire

24

Explicație

Divizorii impari lui 30 sunt 1, 3, 5 și 15. Suma lor este 24.

#include <iostream>
using namespace std;

int main(){
    int n , d;
    long long S = 0;
    cin >> n;
    for(d=1 ; d*d<n ; d++)
        if(n % d == 0){
            if(d%2==1)
                S += d;
            if(n/d%2==1)
                S += n/d;
        }
    if(d * d == n)
        if(d%2==1)
            S += d;
    cout << S;
    return 0;
}