Cod sursa(job #471116)

Utilizator CS-meStanca Marian Ciprian CS-me Data 17 iulie 2010 12:52:40
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<fstream>

using namespace std;

ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
int p,x,putere,s,n;

const int MOD=1999999973;

long long lgput(int n, int k){
    long long rez, p;
    if(k==0)
        return 1;
    if(k==1)
        return n;
    if(k%2==1)
    {
        rez=n;
        return (lgput(n,k-1)*rez)%MOD;
    }
    else
    {
        p=lgput(n,k/2);
        rez=(p*p)%MOD;
        return rez;
    }
}
int main(){

    fin>>x>>putere;

    fout<<lgput(x,putere);
    fout.close();
return 0;
}