Cod sursa(job #327431)
| Utilizator | Data | 28 iunie 2009 20:49:13 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include<stdio.h>
#define m 1999999973
using namespace std;
int x,n;
int put(int x, int n)
{ long long re;
if(n == 0) return 1;
else if( n % 2 == 0 )
{ re = put(x, n/2);
return (re * re) % m;
}
else { re = put(x, n-1);
return (re * x) % m;
}
}
int main()
{ //int
FILE *f = fopen("lgput.in", "r");
FILE *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;
}