Cod sursa(job #1444366)

Utilizator alexandrusandulescuSandulescu Alexandru alexandrusandulescu Data 29 mai 2015 17:19:46
Problema Suma si numarul divizorilor Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <cstdio>

using namespace std;

int n, i;
long long x, s, nr, p, v, d, y;

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

    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        scanf("%lld", &x);
        s = 1;
        d = 2;
        y = x;
        nr = 1;
        while (x != 1 && d * d <= y)
        {
            p = 0;
            v = d;
            while (x % d == 0)
            {
                p++;
                v *= d;
                x /= d;
            }
            nr = nr * (p+1);
            s = s * (v-1)/(d-1);
            d++;
        }
        if (x != 1)
        {
            nr *= 2;
            s = s * (x * x - 1)/(x - 1);
        }
        printf("%lld %d%\n", nr, s % 9973);
    }
    return 0;
}