Cod sursa(job #1460673)

Utilizator Marius_mFMI-M2 Marius Melemciuc Marius_m Data 13 iulie 2015 15:16:03
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
/*
 * =====================================================================================
 *
 *       Filename:  lgput.cpp
 *
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  07/13/2015 03:09:38 PM
 *       Revision:  none
 *       Compiler:  gcc/g++
 *
 *         Author:  Marius-Constantin Melemciuc  
 *          email:  
 *   Organization:  
 *
 * =====================================================================================
 */

#include <iostream>
#include <fstream>
#define LARGE_NUMBER 1999999973

using namespace std;

int powOfNumber(long long int x, 
                long long int y) {
    long long int result = 1;

    while (y != 0) {
        if ((y & 1) == 1) {
            result = (result * x) % LARGE_NUMBER;
        }

        x = (x * x) % LARGE_NUMBER;
        y = y >> 1;
    } 

    return result;
}

int main() {
    ifstream in("lgput.in");
    ofstream out("lgput.out");

    long long int n, p;

    in >> n >> p;

    out << powOfNumber(n, p);

    in.close();
    out.close();

    return 0;
}