Cod sursa(job #1012883)

Utilizator sziliMandici Szilard szili Data 19 octombrie 2013 19:40:09
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

#define MAGIC_NUMBER 1999999973

using namespace std;

int main()
{
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);

    int base, exponent;

    scanf("%d %d", &base, &exponent);

    int result = 1;

    while (exponent != 0){

        if (exponent %2 == 1) {
            result = result * base % MAGIC_NUMBER;
        }

        base = base*base % MAGIC_NUMBER;
        exponent /= 2;
    }

    printf("%d", result);

    return 0;
}