Cod sursa(job #585346)

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