Cod sursa(job #147449)

Utilizator moga_florianFlorian MOGA moga_florian Data 2 martie 2008 21:54:41
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>
#define MOD 1999999973

long long p[40];

int main(){

    FILE *fin = fopen("lgput.in","r"),
         *fout = fopen("lgput.out","w");
         
    long long A,B,sol=1;
    fscanf(fin,"%lld%lld",&A,&B);
    
    p[0] = A;
    for(int i=1;((long long)1<<i) <= B; i++)
        p[i] = (p[i-1] * p[i-1])%MOD;

    for(int i=0;((long long)1<<i) <= B; i++)
        if( (1<<i) & B )
            sol = (sol*p[i])%MOD;
            
    fprintf(fout,"%lld\n",sol);
    
    fclose(fin);
    fclose(fout);
    return 0;

}