Cod sursa(job #234574)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 21 decembrie 2008 11:04:07
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>   
# define n 1999999973   
long long put(long long N, long long P)   
{   
 long long p;   
 if (P==0) return 1;   
  else if(P%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;   
}