Cod sursa(job #2189601)

Utilizator 0987654321Cazan Bogdan Marian 0987654321 Data 28 martie 2018 18:21:21
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>
#define M 1999999973
using namespace std;
long long n,p;
ifstream f("lgput.in");
ofstream g("lgput.out");

long long putere (long long n,long long p)
{
   long long k=1;
   if (p==0)
    return 1;
   else
    while (p!=1)

       if (p%2==0)
       {
           n=(n*n)%M;
           p=p/2;
       }
       else
       {
           k=(k*n)%M;
           p--;
       }
   return (k*n)%M;
}
int main ()
{
    f>>n>>p;
    g<<putere(n,p);
    f.close();
    g.close();
    return 0;
}