Cod sursa(job #1621642)
Utilizator | Amarandei-Stanescu Alexandru turbowin120 | Data | 29 februarie 2016 20:28:41 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.48 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
const int MOD = 1999999973;
long long n,p;
int main()
{
FILE * in;
in=fopen("lgput.in", "r");
fscanf(in,"%lld%lld",&n,&p);
p=p%MOD;
long long sol=1;
while(p){
if(p&1){ // echivalent cu p%2==1
sol=(sol*n)%MOD;
}
n=(n*n)%MOD;
p=p/2;
}
FILE * out;
out=fopen("lgput.out", "w");
fprintf(out,"%lld",sol);
return 0;
}