Cod sursa(job #1621719)

Utilizator dragomirmanuelDragomir Manuel dragomirmanuel Data 29 februarie 2016 21:05:55
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <cstdlib>
#include <cstdio>

int m=1999999973;

using namespace std;

int r3(int nr,int putere)
{
    int rez=1;
    do
    {
        if(putere%2)
            rez=((long long)rez*nr)%m;
        nr=((long long)nr*nr)%m;

        putere/=2;
    }while(putere);

    return rez;
}
int main()
{
    int N,P;
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);

    scanf("%d %d", &N, &P);
    int long long nr=r3(N,P);
    printf("%lld", nr);

    return 0;
}