Cod sursa(job #234563)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 21 decembrie 2008 10:53:53
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <stdio.h>
# define n 1999999973
long long put(long long N, long long P)
{
 long p;
 if (N==1) return N%n;
  else if(N%2==1) return (N*put(N, P-1))%n;
    else {
	  p=put(N,P/2);
	  return (p*p)%n;;
	  }
}
int main()
{
    long long N,P;
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%lld %lld",&N,&P);
    printf("%lld",put(N,P));
    return 0;
}