Cod sursa(job #2369588)

Utilizator DandeacDan Deac Dandeac Data 6 martie 2019 02:02:49
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f ("lgput.in");
ofstream g ("lgput.out");

long long putere(int n, int p, int mod)
{
    long long r;
    if(p==0) return 1;
    if(p%2==1) return (n*putere(n,p-1,mod))%mod;
    r=putere(n,p/2,mod) % mod;
    return r*r%mod;
}
int main()
{
    long long n,p,mod = 1999999973;
    f>>n>>p;
    g<<putere(n,p,mod);
    /*
   int n,p,nr = 1999999973;
   int rez = 1;
   f>>n>>p;

   while (p > 0)
   {
       if(p%2==1) /// ii impara
       {
           rez = (rez*n) % nr;
           p--;
       }
       n = (n*n) % nr;
       p = p / 2;
   }
   g<< rez;
   */
   return 0;

}