Cod sursa(job #2143139)

Utilizator alicesuiuAlice Suiu alicesuiu Data 25 februarie 2018 16:55:59
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator java Status done
Runda Arhiva educationala Marime 0.79 kb
import java.io.*;
import java.util.*;

public class Main {
	private static final String INPUT_FILE_PATH = "lgput.in";
	private static final String OUTPUT_FILE_PATH = "lgput.out";
	static int mod = 1999999973;

	public static int baseExponent(int b, int e) {
		if (e == 1)
			return b % mod;
		else
			if (e % 2 == 1)
				return (int) ((1L * (b % mod) * (baseExponent(b, e - 1) % mod)) % mod);
			else {
				int res = baseExponent(b, e / 2) % mod;
				return (int) ((1L * res * res) % mod);
			}
	}
	
	public static void main(String args[]) throws IOException{
		Scanner in = new Scanner(new FileReader(INPUT_FILE_PATH));
		PrintWriter out = new PrintWriter(OUTPUT_FILE_PATH);
		int b, e;
		b = in.nextInt();
		e = in.nextInt();
		out.print(baseExponent(b, e));
		out.flush();
		in.close();
		out.close();
	}
}