Cod sursa(job #1335379)

Utilizator geo_furduifurdui geo geo_furdui Data 5 februarie 2015 14:36:57
Problema Ridicare la putere in timp logaritmic Scor 10
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;
    }
    fprintf(g,"%lld",sol);
    fclose(f);
    fclose(g);
    return 0;
}