Cod sursa(job #585348)

Utilizator drywaterLazar Vlad drywater Data 28 aprilie 2011 22:55:09
Problema Suma si numarul divizorilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 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++)
        {
                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;
                while (sum>9973) sum-=9973;
        }
        if (n>1) {nr*=2; sum=sum*(n+1); while (sum>9973) sum-=9973;}
        printf("%d %lld\n",nr,sum);
    }
    return 0;
}