Cod sursa(job #614437)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 6 octombrie 2011 15:27:02
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<cstdio>

int main()
{
    long long i,j,a,b,sol=1,aux,aux2;
	freopen("sumdiv.in","r",stdin);
	freopen("sumdiv.out","w",stdout);
	scanf("%lld %lld",&a,&b);
    for (i=2;i*i<=a;++i)
        if (a%i==0)
        {
            aux=0;
            while (a%i==0)
            {
                ++aux;
                a/=i;
            }
            j=i;
            aux=((aux*b)+1)%9900;
            for (j=1,aux2=1;j<=aux;++j)
                aux2*=i;
            aux2-=1;
            sol*=aux2;
            for (j=1;j<=9900;++j)
                sol*=(i-1);
        }
    if (a!=1)
    {
        aux=1;
        i=a;
        j=i;
        aux=((aux*b)+1)%9900;
        for (j=1,aux2=1;j<=aux;++j)
            aux2*=i;
        aux2-=1;
        sol*=aux2;
        for (j=1;j<=9900;++j)
            sol*=(i-1);
    }
    printf("%lld\n",sol);
	return 0;
}