Cod sursa(job #327500)
| Utilizator | Data | 29 iunie 2009 11:26:31 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include<stdio.h>
#define mod 1999999973
using namespace std;
int x,n;
int put(int x, int n)
{
long long r;
if(n==0) return 1;
else if(n%2==0)
{
r=put(x,n/2);
return (r*r)%mod;
}
else { r=put(x,n/2);
return (r*r*x)%mod;
}
}
int main()
{
FILE *f=fopen("lgput.in","r"), *g=fopen("lgput.out","w");
fscanf(f, "%d%d", &x, &n);
fprintf(g, "%lld\n", (long long)put(x,n));
fclose(f);
fclose(g);
return 0;
}
