Cod sursa(job #1094728)

Utilizator BumpiliciFoloba Anca Bumpilici Data 29 ianuarie 2014 19:34:18
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
/*
Dandu-se doua numere naturale N si P, se cere sa se calculeze restul impartirii lui NP la 1999999973.

lgput.in
2 4

lgput.out
16
*/

#include<cstdio>

long long n;
long long p;
long long sol=1;
const int MOD=1999999973;

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