Cod sursa(job #1281534)

Utilizator Anaa_IIanciuc Ana Anaa_I Data 3 decembrie 2014 12:02:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include <fstream>

using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
int R=1999999973;
int putere(int a,int n)
{
    if(n==1) return a;
    if(n%2==1) return (long long)a*putere((long long)a*a%R,n/2)%R;
    return putere((long long)a*a%R,n/2);
}
int main()
{
    int a,n;
    f>>a>>n;
    g<<putere(a,n);
    return 0;
}
/*
a^n=(a^2)^n/2; daca n e par
    a*(a^2)^(2n-1)/2
*/