Cod sursa(job #169274)

Utilizator sanaDascalu Laurentiu sana Data 1 aprilie 2008 15:24:13
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.38 kb
#include <stdio.h>        

unsigned long n, p, m;

long power(long long base, long p, long mod) {
	long rez=1;
	while (p>0) {
		if ((long)(p&1)==1)
			rez=(rez*base)%mod;
		base=(base*base)%mod;
		p>>=1;
	}
	return rez;
}

int main() {
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);

	scanf("%ld %ld", &n, &p);
	printf("%ld\n", power(n, p, 1999999973));

	return 0;
}