Cod sursa(job #1444368)

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

using namespace std;

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

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

    scanf("%lld", &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 %lld%\n", nr, s%9973);
    }
    return 0;
}