Cod sursa(job #1870655)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 6 februarie 2017 20:13:24
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#define mod 9901
using namespace std;
ifstream f ("sumdiv.in");
ofstream g ("sumdiv.out");
int a,b,p,suma=1,i;
int putere(int a,int b)
{
    int t=a;
    for(int i=2;i<=b;++i) a=(a*t)%mod;
    return a;
}
int main()
{
    f>>a>>b;
    if(a%2==0)
    {
        while(a%2==0)
        {
            ++p;
            a=a/2;
        }
        p=p*b+1;
        suma=(suma*(putere(2,p))-1)%mod;
    }
    for(i=3;i<=499999;++i)
    {
        if(a%i==0)
        {
            p=0;
            while(a%i==0)
            {
                ++p;
                a=a/i;
            }
            p=p*b+1;
            suma=(suma*(putere(2,p+1)-1)/(i-1))%mod;
        }
    }
    g<<suma;
    return 0;
}