Cod sursa(job #1051924)

Utilizator mucenic_b101Bogdan Mucenic mucenic_b101 Data 10 decembrie 2013 18:19:36
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>

int rest;

int lp( int a, int n ) {
    if( n == 0 )
        return 1;
    if( a == 0 )
        return 0;
    if( n % 2 == 0 )
        return lp( ( (long long)a * a) % rest, n / 2 );
    return ( (long long)a * lp( a, n - 1 ) ) % rest;
}

int main () {

    FILE *f, *g;
    f = fopen( "inversmodular.in", "r" );
    g = fopen( "inversmodular.out", "w" );

    int a, n;

    fscanf( f, "%d%d", &a, &n );
    rest = n;

    fprintf( g, "%d\n", lp( a, n - 2 ) );

    fclose( f );
    fclose( g );

    return 0;

}