Cod sursa(job #1050977)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 9 decembrie 2013 15:41:36
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#define REST 1999999973

int lgput( unsigned int n, unsigned int p ) {
    if( p == 0 )
        return 1;
    if( n == 0 )
        return 0;
    if( p % 2 == 0 )
        return lgput( ( n * n ) % REST, p / 2 );
    return ( n * ( lgput( n, p - 1 ) % REST ) ) % REST;
}


int main () {
    FILE *f, *g;
    f = fopen( "lgput.in", "r" );
    g = fopen( "lgput.out", "w" );

    unsigned int n, p;
    fscanf( f, "%d%d", &n, &p );

    fprintf( g, "%d\n", lgput( n, p ) );

    fclose( f );
    fclose( g );

    return 0;
}