Cod sursa(job #801483)
Utilizator | Data | 24 octombrie 2012 15:12:40 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.44 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
unsigned int n,p,nr,i,m;
int main()
{
fscanf(f,"%d%d",&n,&p);
nr=1;
for(i=0;i<32;i++)
{
m=1<<i;
if((m&n)==m)
{
nr=(p*nr)%1999999973;
}
p=(p*p)%1999999973;
}
fprintf(g,"%d",nr);
fclose(g);
return 0;
}