Mai intai trebuie sa te autentifici.
Cod sursa(job #718417)
| Utilizator | Data | 20 martie 2012 19:42:05 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include<stdio.h>
#define nr 1999999973
FILE *f=fopen("lgput.in","r"), *g=fopen("lgput.out","w");
int n, p;
long long put(int n, int p)
{
if( (p%2 == 0) && p)
{
int a = put (n, p/2);
return (a*a)%nr;
}
if(p==0)
return 1;
else
if(p==1)
return n;
else
if(p%2)
return (n*put(n, p-1)) % nr;
}
int main()
{
fscanf(f,"%d %d", &n, &p);
fprintf(g,"%d", put(n,p));
return 0;
}
