Cod sursa(job #917709)

Utilizator Walrus21andrei Walrus21 Data 18 martie 2013 11:44:46
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#include <stdio.h>

FILE *f=fopen("lgput.in","r");
FILE *g=fopen("lgput.out","w");

const int m(1999999973);
long long N,sol(1);
unsigned P;

int main()
{
    fscanf(f,"%d%d",&N,&P);
    for(int i=0;(1<<i)<=P;++i)
    {
        if((P&(1<<i))>0)
         sol=(sol*N)%m;
        N=(N*N)%m;
    }
    fprintf(g,"%lld",sol);
    return 0;
}