Pagini recente » Borderou de evaluare (job #599612) | Borderou de evaluare (job #1832075) | Borderou de evaluare (job #3116004) | Borderou de evaluare (job #583831) | Cod sursa (job #2086439)
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";
protected static final int PRIME = 1999999973;
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(new FileReader(INPUT_FILE_PATH));
PrintWriter out = new PrintWriter(OUTPUT_FILE_PATH);
long n = in.nextLong();
int p = in.nextInt();
out.println(MathUtils.moduloPow(n, p));
in.close();
out.close();
}
static class MathUtils {
static long moduloPow(long base, int exp) {
long currRes = 1;
switch (exp % 2) {
case 0:
currRes = (exp == 0) ? 1 : moduloPow((base * base) % PRIME, exp / 2);
break;
case 1:
currRes = base * moduloPow(base, --exp);
break;
}
return currRes % PRIME;
}
}
}