Cod sursa(job #2236929)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 30 august 2018 22:56:19
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator java Status done
Runda Arhiva educationala Marime 0.85 kb
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.util.Scanner;

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 int pow(final int n, final int p) {
    if (p == 0) {
      return 1;
    }
    return p % 2 == 1
      ? (int) ((1L * n * pow(n, p - 1)) % MOD)
      : pow((int) ((1L * n * n) % MOD), p / 2);
  }

  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 int result = pow(n, p);
      writer.println(result);
    }
  }
};