Cod sursa(job #198868)

Utilizator ciprianfFarcasanu Alexandru Ciprian ciprianf Data 15 iulie 2008 16:01:35
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#include <stdio.h>
#define m 1999999973
long long sol(long long n,long long p){
	if(p==0) return 1;
	if(p%2) return (n%m)*sol((n%m)*(n%m)%m,p/2)%m;
	return sol((n%m)*(n%m)%m,p/2)%m;
}
int main(){
	long long n,p;
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%lld%lld",&n,&p);
	printf("%lld",sol(n%m,p));
	return 0;
}