Cod sursa(job #2383800)

Utilizator Andy_ANDYSlatinaru Andrei Alexandru Andy_ANDY Data 19 martie 2019 19:52:55
Problema Suma divizorilor Scor 30
Compilator cpp-64 Status done
Runda excelenta-tema2 Marime 0.47 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f ( "sumdiv.in" ); ofstream g ( "sumdiv.out" );
int Rp(int b,int p)
{   int r=1;
    while(p)
    {   if(p&1) r=(1ULL*r*b)%9901;
        b=(1ULL*b*b)%9901;
        p>>=1;
    }
    return r;
}
int sumdiv(int n)
{   int s=0,d;
    for(d=1;d*d<n;d++)
        if(!(n%d)) s=s+d+n/d;
    if(d*d==n) s+=d;
    return s;
}
int main()
{   int a,b;
    f>>a>>b;
    g<<sumdiv(Rp(a,b)%9901);
    return 0;
}