Cod sursa(job #3193046)
Utilizator | Data | 13 ianuarie 2024 20:56:14 | |
---|---|---|---|
Problema | Suma divizorilor | Scor | 30 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <bits/stdc++.h>
using namespace std;
long long MOD=9901;
ifstream fin ("sumdiv.in");
ofstream fout ("sumdiv.out");
long long s,a,b;
long long p(int a, int b)
{
int r=1;
while(b)
{
if(b%2==1)
r=(1LL*r*a)%MOD;
a=(1LL*a*a)%MOD;
b=b/2;
}
return r;
}
int main()
{
fin >> a >> b;
long long n=p(a,b);
for (long long d=1;d*d<=n;d++)
{
if (n%d==0)
{
s+=d;
if (d!=n/d)
{
s+=n/d;
}
}
}
fout << s;
return 0;
}