Cod sursa(job #147602)
Utilizator | Data | 3 martie 2008 11:29:09 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <stdio.h>
#define FIN "lgput.in"
#define FOUT "lgput.out"
#define MOD 1999999973
typedef unsigned long long ul;
int putere(ul n, ul p) {
ul a = 1;
while (p) {
if (p & 1)
a = (n*a)%MOD;
n = (n*n)%MOD;
p /= 2;
}
return (int)a;
}
int main()
{
ul n, p;
fscanf(fopen(FIN, "r"), "%llu %llu", &n, &p);
fprintf(fopen(FOUT, "w"), "%d\n", putere(n, p));
return 0;
}