Cod sursa(job #716312)
Utilizator | Data | 18 martie 2012 16:27:52 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.38 kb |
#include<cstdio>
using namespace std;
#define M 1999999973
FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");
long long N,P,sol,fact;
int main()
{
fscanf(f,"%I64d %I64d",&N,&P);
fact=N;sol=1;
for (int i=0;(1<<i)<=P;i++)
{
if ( (1<<i)&P )
sol=(sol*fact)%M;
fact=(fact*fact)%M;
}
fprintf(g,"%I64d",sol);
return 0;}