Cod sursa(job #1612793)

Utilizator andreea_zahariaAndreea Zaharia andreea_zaharia Data 25 februarie 2016 00:57:08
Problema Suma si numarul divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <cstdio>

int T;
long long N;
long long NRD, SUMD;

int main () {
    freopen ("ssnd.in", "r", stdin);
    freopen ("ssnd.out", "w", stdout);

    scanf ("%d", &T);
    while (T--) {
        scanf ("%lld", &N);

        NRD = SUMD = 1;

        long long f = 2;
        while (f * f <= N) {
            long long flap = 1;
            long long p = 0;
            while (N % f == 0) {
                N /= f;
                flap *= f;
                p++;
            }

            NRD *= (p + 1);
            SUMD *= ((flap * f) - 1) / (f - 1);

            f++;
        }

        if (N != 1) {
            NRD *= 2;
            SUMD *= ((N * N) - 1) / (N - 1);
        }

        printf ("%lld %lld\n", NRD, SUMD);
    }

    return 0;
}