Cod sursa(job #1895726)

Utilizator rares_ciocieaRares Andrei Ciociea rares_ciociea Data 28 februarie 2017 10:27:50
Problema Suma divizorilor Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#define n 9901
using namespace std;
ifstream in("sumdiv.in");
ofstream out("sumdiv.out");
int a,b;
long long sol=1;
int put(int a,int b)
{
    int p=1;
    for(int i=1; i<=b; i++)
        p*=a;
    return p;
}
void desc()
{
    int j=2,p;
    while(j*j<=a)
    {
        if(a%j==1)
        {
            p=0;
            while(a%j==0)
            {
                p++;
                a/=j;
            }
            p*=b;
            sol*=(put(j,p+1)/(j-1));
            sol%=n;
        }
    }
    if(a!=1)
    {
        p=b;
        sol*=((put(j,p+1)-1)/(j-1));
        sol%=n;
    }
    out<<sol;
}
int main()
{
    in>>a>>b;
    desc();
    return 0;
}