Cod sursa(job #2386510)
| Utilizator | Data | 23 martie 2019 10:33:27 | |
|---|---|---|---|
| Problema | Suma divizorilor | Scor | 20 |
| Compilator | cpp-64 | Status | done |
| Runda | excelenta-tema2 | Marime | 0.58 kb |
#include<bits/stdc++.h>
#define ll long long
#define mod 9901
using namespace std;
ifstream f("sumdiv.in");
ofstream g("sumdiv.out");
ll a, b;
ll log_pow(ll x, ll p)
{
ll r=1;
while(p)
{
if((p & 1)) r=(r*x)%mod;
x=(x*x)%mod;
p=p>>1;
}
return r;
}
ll sum_div(ll x)
{
ll s=x+1;
for(ll d=2; d*d<=x; d++)
{
if(x%d==0)
{
s=(s+d)%mod;
if(d!=x/d) s=(s+x/d)%mod;
}
}
return s%mod;
}
int main()
{
f>>a>>b;
g<<sum_div(log_pow(a, b));
return 0;
}
