Cod sursa(job #612546)

Utilizator andrei202Tulus Andrei andrei202 Data 8 septembrie 2011 17:34:46
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>
#define M 1999999973
#define ll long long
ll x,y,rez;

int putere(int a,int n)
{if(n==0)
	return 1;
else
	if(n==1)
       return a%M;
    if(n%2!=0)
       return (a*putere(a,(n-1)/2)*putere(a,(n-1)/2))%M;
	else
		if(n%2==0)
			return (putere(a,n/2)*putere(a,n/2))%M;}

int main()
{freopen("lgput.in","r",stdin);
 freopen("lgput.out","w",stdout);
 
 scanf("%lld %lld",&x,&y);
 rez=putere(x,y);
 printf("%lld",rez);
 
 fclose(stdin);
 fclose(stdout);

 return 0;}