Cod sursa(job #1825075)

Utilizator georgeliviuPereteanu George georgeliviu Data 8 decembrie 2016 18:31:49
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <cstdio>

using namespace std;

const int mod = 1999999973 ;

int main()
{
    freopen("lgput.in","r",stdin);
    freopen("lgput.out","w",stdout);
    int n , p;
    scanf("%d %d",&n,&p);
    long long a = n , sol = 1 ;
    for ( int i = 0 ; (1<<i) <= p; ++i)
    {
        if (  ( ( 1 << i ) & p ) > 0 )
        {
            sol = ( sol * a ) % mod ;
        }
         a = ( a * a ) % mod ;
    }
    printf("%lld ",sol) ;
}