Cod sursa(job #664902)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 21 ianuarie 2012 10:05:51
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <cstdio>
#define DN 1999999973
using namespace std;

int f(int nr,int p)
{
	if(p==1) return nr;
	else if(p==0) return 1;
	else
	{
		if(p%2!=0) 
		{
			return (nr*1LL*f(nr,p-1))%DN;
		}
		
		int x=f(nr,p/2);
		return (x*1LL*x)%DN;
	}
}


int main()
{
	int nr,put;
	freopen("lgput.in","r", stdin);
	freopen("lgput.out","w", stdout);
	scanf("%d %d",&nr,&put);
	printf("%d",f(nr,put));
	return 0;
}