Cod sursa(job #1335376)

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

using namespace std;
FILE *f,*g;

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