Cod sursa(job #1357799)

Utilizator cosmin.pascaruPascaru Cosmin cosmin.pascaru Data 24 februarie 2015 09:06:03
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <fstream>

#define mod 1999999973
#define ll long long

using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

ll put(ll n, ll p)
{
    ll rez;
    if (n == 0) return 0;
    if (p == 0) return 1;
    rez = put(n, p >> 1);
    if (p % 2) return (rez * rez * n) % mod;
    return (rez * rez) % mod;
}

int main()
{
    ll n, p;
    fin >> n >> p;
    fout << put(n, p) << '\n';

    return 0;
}