Cod sursa(job #892086)
Utilizator | Data | 25 februarie 2013 22:12:41 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.36 kb |
#include <fstream>
const unsigned long long MOD=1999999973;
int main(){
std::ifstream fin("lgput.in");
std::ofstream fout("lgput.out");
unsigned long long n,p; fin>>n>>p;
unsigned long long sol=1;
n%=MOD;
while(p>0){
if(p&1) sol=(sol%MOD)*(n%MOD)%MOD;
p>>=1;
n=n*n%MOD;
}
fout<<sol<<'\n';
}