Cod sursa(job #1107011)
Utilizator | Nasue Diana anaid96 | Data | 13 februarie 2014 16:05:44 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include<stdio.h>
using namespace std;
FILE *in,*out;
//definitii
#define ll long long
//constante
const ll mod=1999999973;
//variabile
ll num,power,answer=1;
int main(void)
{
in=fopen("lgput.in","rt");
out=fopen("lgput.out","wt");
fscanf(in,"%lld%lld",&num,&power);
for(int i=0; (1<<i)<=power; i++)
{
if((1<<i)&power)
answer = (answer * num)%mod;
num = (num*num)%mod;
}
fprintf(out,"%lld",answer);
fclose(in);
fclose(out);
return 0;
}