Pagini recente » Cod sursa (job #1996694) | Cod sursa (job #2402007) | Cod sursa (job #2349888) | Cod sursa (job #1017300) | Cod sursa (job #1832934)
import java.util.*;
import java.lang.*;
import java.io.*;
import java.math.*;
class Main {
static ArrayList <ArrayList <Integer> > divs;
static int[] factors = new int[105];
static void addFactorial(int nr) {
for (int i = 1; i <= nr; ++ i) {
int i2 = i;
for (Integer it: divs.get(i))
while (i2 % it == 0) {
i2 /= it;
factors[it] ++;
}
}
}
public static void main (String[] args) throws java.lang.Exception {
Scanner sc = new Scanner(new FileInputStream("factoriale.in"));
PrintWriter pw = new PrintWriter("factoriale.out");
int N = sc.nextInt();
int K = sc.nextInt();
divs = new ArrayList<ArrayList <Integer> >(101);
for (int i = 0; i <= 100; ++ i)
divs.add(new ArrayList <Integer>());
for (int i = 2; i <= 100; ++ i)
if (divs.get(i).size() == 0)
for (int j = i; j <= 100; j += i)
divs.get(j).add(i);
for (int i = 0; i <= 100; ++ i)
factors[i] = 0;
while (N > 0) {
N --;
int val;
val = sc.nextInt();
addFactorial(val);
}
BigInteger ans = BigInteger.ONE;
for (int i = 1; i <= 100; ++ i) {
factors[i] %= K;
factors[i] = K - factors[i];
factors[i] %= K;
for (int j = 0; j < factors[i]; ++ j)
ans = ans.multiply(BigInteger.valueOf(i));
}
pw.println(ans);
pw.close();
}
}