Cod sursa(job #2277139)

Utilizator Raoul_16Raoul Bocancea Raoul_16 Data 5 noiembrie 2018 20:16:55
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator java Status done
Runda Arhiva educationala Marime 0.96 kb
import java.util.Scanner;	//basic input
import java.io.FileInputStream; // pentru FileInputStream
import java.io.PrintStream; // pentru printStream 
import java.io.IOException; //try block

public class main {

	public static final String IN_FILE = "lgput.in";
	public static final String OUT_FILE = "lgput.out";
	public static final int MOD = 1999999973;
	
	public static long pow(final int N, final int P) {
		long Xcopy = N, sol = 1;
		for (int i = 0; (1 << i) <= P; ++i) {
			if ( ((1 << i) & P) > 0)
				sol = (sol * Xcopy) % MOD;
			Xcopy = (Xcopy * Xcopy) % MOD;
		}
		return sol;
	}	
	public static void Main(final String[] args) throws IOException {
	    try (
	        final Scanner scanner = new Scanner(new FileInputStream(IN_FILE));
	        final PrintStream writer = new PrintStream(OUT_FILE)) 
	    {
	      final int n = scanner.nextInt();
	      final int p = scanner.nextInt();
	      final long result = pow(n, p);
	      writer.println(result);
	    }
	 }
};