Cod sursa(job #2986253)

Utilizator RMTomaRican Mihai Toma RMToma Data 28 februarie 2023 09:15:05
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb

#include <bits/stdc++.h>

using namespace std;

long long putere(long long a, long long b){
    if (b==1) return a;
    else if(b%2==1) return putere(a*a, (b-1)/2);
    else if (b%2==0) return putere(a*a, b/2);
}

int main()
{
    ifstream in("lgput.in");
    ofstream out("lgput.out");
    long long n, m, r, x;
  in >> n >> m;
  r = putere(n, m);
  if(r < 1999999973){
      out << r;
  } else {
      x = r - (r/1999999973)*1999999973;
      out << r - x;
  }
  in.close();
  out.close();
}