Cod sursa(job #2165793)
| Utilizator | Data | 13 martie 2018 13:40:20 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include <bits/stdc++.h>
using namespace std;
FILE *fin, *fout;
long long putere(long long a, long long b, long long c){
int rez=1;
while(b){
if(b%2==1) rez=(rez*a)%c;
a=(a*a)%c;
b/=2;
}
return rez;
}
int main()
{
fin=fopen("modulo.in", "r");
fout=fopen("modulo.out", "w");
long long a,b,c;
c=1999999973;
fscanf(fin, "%lld %lld", &a, &b);
fprintf(fout, "%lld", putere(a%c,b,c));
return 0;
}
