Cod sursa(job #658251)

Utilizator razvan_kusztosKusztos razvan razvan_kusztos Data 8 ianuarie 2012 14:12:00
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<cstdio>
#define m 1999999973
using namespace std;
int p;
long long n,sol;
long long rid(long long  n,int p)
{
    if (p==0) return 1;
    else
    if (p%2==0)
        {
            int x = rid(n,p/2);
            return x*x%m;
        }
    else
    if (p%2!=0) return  (n*rid(n,p-1))%m;
}
int main()
   {
       freopen("lgput.in","r",stdin);
       freopen("lgput.out","w",stdout);
       scanf("%lld%d",&n,&p);
       sol=rid(n,p);
       printf("%d\n",sol);
   }