Cod sursa(job #333369)

Utilizator levap1506Gutu Pavel levap1506 Data 22 iulie 2009 14:35:23
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;
int N,M;
long long spow(long long a,long long b) {
    long long mid,mid1;
    if (b==1) mid=a; else
    {
        if (b%2) {
            mid1=spow(a,(b-1)/2);
            mid=a*((mid1*mid1)%1999999973);
        }
        else
        {
            mid1=spow(a,b/2);
            mid=mid1*mid1;
        }
    }

    return mid % 1999999973;
}
int main() {
    ifstream in;
    ofstream out;
    in.open("lgput.in");
    out.open("lgput.out");
    in >> N >> M;
    out << spow(N,M);
    out.close();
    return 0;

}