Cod sursa(job #1672953)

Utilizator slycerdan dragomir slycer Data 3 aprilie 2016 12:27:05
Problema Invers modular Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 0.98 kb
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.Scanner;

class InversModular {



    public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
        Scanner scanner = new Scanner(new FileInputStream("inversmodular.in"));
        PrintWriter writer = new PrintWriter("inversmodular.out", "UTF-8");

        long a = scanner.nextLong();
        long n = scanner.nextLong();
        long result = solve(a, n-2, n );
        writer.println(result);
        writer.close();
    }


    public static long solve( long a, long p, long mod  ){
        if ( p == 0 ){
            return 1;
        }
        if ( p == 1 ){
            return a;
        }
        if ( p%2==0 ){
            long aux = solve( a, p/2, mod );
            return ( aux * aux ) % mod;
        } else {
            return ( a * solve( a, p-1, mod ) ) % mod ;
        }
    }

}