Cod sursa(job #552457)

Utilizator SzabiVajda Szabolcs Szabi Data 12 martie 2011 13:20:25
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <stdio.h>
#define MOD 1999999973

using namespace std;

long long n,p;

long long expo(long long n,long long p){
	long long temp;
	
	
	if(p==1)return n;
	else if(p%2==0){
		temp=expo(n,p/2);
		
		return (temp*temp)%MOD;
		
	}else{
		
		temp=expo(n,(p-1)/2);
		
		return (((temp*temp)%MOD)*n)%MOD;
		
	}
	
}


int main(){
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	
	scanf("%lld %lld",&n,&p);
	
	printf("%lld",expo(n,p));
	
	return 0;}