Cod sursa(job #1296972)

Utilizator lavi07Cioloca Lavinia lavi07 Data 21 decembrie 2014 16:47:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>

using namespace std;

const long long k = 1999999973;

long long putere(long long n, long long p) {
    if(p==1)
        return n % k;
    if(p%2)
        return (n*putere((n*n) % k, p/2)) % k;
    else
        return putere((n*n) % k, p/2);
}

int main()
{
    FILE *in, *out;
    in = fopen("lgput.in", "r");
    out = fopen("lgput.out", "w");
    long long n, p;
    fscanf(in, "%lld %lld", &n, &p);
    fprintf(out, "%lld\n", putere(n, p));
    fclose(in);
    fclose(out);
    return 0;
}