Cod sursa(job #798363)

Utilizator akaSoarePoepscu Bogdan Ionut akaSoare Data 16 octombrie 2012 15:07:14
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <cstdio>
#define M 1999999973

using namespace std;

long long numar, putere, rezultat;

int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    scanf("%lld %lld",&numar,&putere);
    rezultat=1;
    for(int i=0;(1 << i)<=putere;i++){
        if(((1<<i)&putere)!=0)
            rezultat=(rezultat*numar)%M;
        numar=(numar*numar)%M;
    }
    printf("%lld\n", rezultat);
    return 0;
}