Cod sursa(job #1672732)

Utilizator slycerdan dragomir slycer Data 3 aprilie 2016 00:44:37
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 1 kb
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 * Created by slycer on 4/3/16.
 */
public class Main {

    private static long MOD = 1999999973l;

    public static void main ( String [] args ) throws FileNotFoundException {
        System.setIn(new FileInputStream("lgput.in"));
        //System.setOut(new PrintStream("lgput.out"));
        PrintWriter output = new PrintWriter( "lgout.out" );

        Scanner s = new Scanner( System.in );
        long a = s.nextLong();
        long p = s.nextLong();
        output.println( solve( a, p ) );
        
    }

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

}