Pagini recente » Cod sursa (job #2873378) | Cod sursa (job #3263010) | Cod sursa (job #464984) | Cod sursa (job #2260102) | Cod sursa (job #139572)
Cod sursa(job #139572)
#include <stdio.h>
const int N_MAX = 128;
int v[N_MAX], fac[N_MAX];
void factori(int X)
{
int i, wx = X;
if (X % 2 == 0) {
fac[2] ++;
X /= 2;
while (X % 2 == 0) {
fac[2] ++;
X /= 2;
}
}
for (i = 3; i * i <= wx; i += 2) {
while (X % i == 0) {
fac[i] ++;
X /= i;
}
}
if (X != 1) fac[X] ++;
}
int main()
{
freopen("factoriale.in", "r", stdin);
#ifndef _SCREEN_
freopen("factoriale.out", "w", stdout);
#endif
int N, K, i;
scanf("%d %d\n", &N, &K);
for (i = 1; i <= N; i ++) {
scanf("%d ", &v[i]);
}
int j;
for (i = 1; i <= N; i ++) {
for (j = 1; j <= v[i]; j ++) {
factori(j);
}
}
int rez = 1, l, pt;
for (i = 1; i <= 100; i ++) {
// printf("i = %d fac = %d\n", i, fac[i]);
if (fac[i] % K != 0) {
pt = K - fac[i];
l = i;
for (j = 2; j <= pt; j ++) l *= i;
rez *= l;
}
}
printf("%d\n", rez);
return 0;
}