Cod sursa(job #1758746)

Utilizator isa_fares_mudiFares Mohamad isa_fares_mudi Data 17 septembrie 2016 19:03:35
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <cstdio>
using namespace std;
const int M = 1999999973;
long long log_pow(long long n, long long p){
    long long ans = 1;
    for ( ; p; p >>= 1 ) {
        if ( p & 1 )
            ans = ( ans * n ) % M;
        n = ( n * n ) % M;
    }
    return ans;
}
int main() {
    freopen ( "lgput.in", "r", stdin );
    freopen ( "lgput.out", "w", stdout );
    long long n, p;
    scanf ( "%lld%lld", &n, &p );
    printf ( "%lld", log_pow( n % M, p ) );
    return 0;
}