Cod sursa(job #2092159)
Utilizator | Anders inquisitor | Data | 21 decembrie 2017 10:50:04 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <cstdio>
long long A, B, MOD = 1999999973;
long long expo(long long A, long long B)
{
long long result = 1;
while(B)
{
if(B & 1) result = (result * A) % MOD;
A = (A * A) % MOD;
B >>= 1;
}
return result;
}
int main()
{
freopen("lgput.in", "r", stdin);
freopen("lgput.out", "w", stdout);
scanf("%lld %lld", &A, &B);
printf("%lld", expo(A % MOD, B % MOD));
return 0;
}