Cod sursa(job #517118)

Utilizator andrey932Andrei andrey932 Data 27 decembrie 2010 20:31:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <iostream>
#include <stdio.h>

using namespace std;

#define MOD 1999999973

FILE *fin=fopen("lgput.in","r"),*fout=fopen("lgput.out","w");
unsigned int i,n,p;
unsigned long long rez,valp;

int main()
{
    fscanf(fin,"%d %d",&n,&p);
    valp=n;
    rez=1;
    for(i=0; (1<<i)<=p;i++) {
        if ( ((1<<i)&p) >0 ) rez=(rez*valp)%MOD;
        valp=(valp*valp)%MOD;
    }
    fprintf(fout,"%lld\n",rez);
    fclose(fout);
    return 0;
}