Cod sursa(job #1525086)

Utilizator preda.andreiPreda Andrei preda.andrei Data 14 noiembrie 2015 18:50:03
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <iostream>
#include <stdio.h>

using namespace std;

const int m = 999999973;

long long int putere(long long int n, int put){
    if(put==0)
        return 1;
    if(put%2==0)
        return putere((n%m)*(n%m)%m, put/2);
    return (n%m)*(putere(n, put-1)%m)%m;
}

int main()
{
    FILE *fin=fopen("lgput.in", "r");
    FILE *fout=fopen("lgput.out", "w");

    long long int n;
    int p;

    fscanf(fin, "%lld%d", &n, &p);
    fprintf(fout, "%lld", putere(n, p)%m);

    return 0;
}