Cod sursa(job #1497522)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 6 octombrie 2015 21:56:21
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>

FILE *fin,*fout;
long long int n,p;

long long int lgput(long long int ba,long long int po)
{
    if(po==1)
    {
        return ba;
    }
    else if(po==0)
    {
        return 1;
    }
    long long int val=lgput(ba,po/2);
    if(po%2==1)
    {
        return ((val*val*ba)%1999999973);
    }
    else
    {
        return ((val*val)%1999999973);
    }
}

int main()
{
    fin=fopen("lgput.in","r");
    fout=fopen("lgput.out","w");

    fscanf(fin,"%lld %lld",&n,&p);
    fprintf(fout,"%lld",lgput(n,p));
}