Cod sursa(job #456075)

Utilizator emanuela.hallerHaller Emanuela emanuela.haller Data 14 mai 2010 20:05:48
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.6 kb
#include<stdio.h>

#define MOD 1999999973

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

int main()
   {
    freopen("lgput.txt","r",stdin);
    freopen("lgput.out","w",stdout);
    long long n,p;
    scanf("%lli %lli",&n,&p);
    printf("%lli",putere(n,p));
    return 0;
   }