Cod sursa(job #1335382)

Utilizator geo_furduifurdui geo geo_furdui Data 5 februarie 2015 14:38:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>
#include<stdio.h>

using namespace std;
FILE *f,*g;

int main()
{
    int i,m,p,n;
    long long o,sol;
    f=fopen("lgput.in","r");
    g=fopen("lgput.out","w");
    fscanf(f,"%d %d",&n,&p);
    m=1999999973;
    sol=1;
    o=n;
    for(i=0; (1<<i)<=p; i++)
    {
        if(((1<<i) & p)>0)
        {
          sol=(sol*o)%m;
        }
        o=(o*o)%m;
    }
    fprintf(g,"%lld",sol);
    fclose(f);
    fclose(g);
    return 0;
}