Cod sursa(job #2374627)

Utilizator ciutanpCiuta Andrei Calin ciutanp Data 7 martie 2019 19:42:00
Problema Suma divizorilor Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<bits/stdc++.h>
#define mod 9901
using namespace std;

ifstream f("sumdiv.in");
ofstream g("sumdiv.out");

int a,b,sol;

int put(int ce, int la)
{
    int sol=1;
    while(la)
    {
        if(la&1)
        {
            sol=(sol*ce)%mod;
        }
        ce=(ce*ce)%mod;
        la>>=1;
    }
    return sol;
}

int main()
{
    f>>a>>b;
    int d=2;
    while(a!=1)
    {
        if(a%d==0)
        {
            int e=0;
            while(a%d==0)
            {
                e++;
                a/=d;
            }
            if(e)
            {
                sol+=(1LL*(put(d,e*b+1)-1)/(d-1))%mod;
            }
        }
        if(d==2)
            d++;
        else
            d+=2;
    }
    g<<sol;
}