Cod sursa(job #146303)
| Utilizator | Data | 1 martie 2008 15:29:41 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include "stdio.h"
#define in "lgput.in"
#define out "lgput.out"
#define mod % 1999999973
int n,p;
void citire()
{
freopen(in,"r",stdin);
scanf("%d %d",&n,&p);
fclose(stdin);
}
int power(int n, int p)
{
long result = 1;
while ( p )
{
if ( p & 1 )
{
result *= n mod;
--n;
}
n *= n mod;
p /= 2;
}
return result;
}
int main()
{
citire();
n = n mod;
p = p mod;
freopen(out,"w",stdout);
printf("%d ",power(n,p));
fclose(stdout);
return 0;
}
