Cod sursa(job #585352)

Utilizator drywaterLazar Vlad drywater Data 28 aprilie 2011 23:03:39
Problema Suma si numarul divizorilor Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <stdio.h>
long long n,e,i,nr;
long long sum,p,d;
int t;
int main(void)
{
    freopen("ssnd.in","r",stdin);
    freopen("ssnd.out","w",stdout);
    scanf("%d",&t);
    while (t--)
    {
        scanf("%lld",&n);
        sum=1;
        nr=1;
        for (i=2;i*i<=n;i++)
        {
                if (n%i) continue;
                d=1;
                e=0;
                p=1;
                while (n%i==0)
                {
                    n/=i;
                    e++;
                    p*=i;
                    p%=9973;
                    d+=p;
                    if (d>=9973)
                    d-=9973;
                }
                nr*=(e+1);
                sum=sum*d;
                sum%=9973;
        }
        if (n>1) {nr*=2; sum=(sum*(n+1))%9973;}
        printf("%lld %lld\n",nr,sum);
    }
    return 0;
}