Pagini recente » Cod sursa (job #2840641) | Cod sursa (job #3255671) | Cod sursa (job #919908) | Cum sa-ti faci o pagina de profil? | Cod sursa (job #135622)
Cod sursa(job #135622)
Utilizator |
Mircea Pasoi domino |
Data |
14 februarie 2008 00:41:40 |
Problema |
Factoriale |
Scor |
Ascuns |
Compilator |
cpp |
Status |
done |
Runda |
|
Marime |
0.9 kb |
#include <stdio.h>
#define MAX_VAL 105
#define FIN "factoriale.in"
#define FOUT "factoriale.out"
int N, K, cnt[MAX_VAL], Res[MAX_VAL];
void mul(int a[], int b)
{
int i, t = 0;
for (i = 1; i <= a[0] || t; ++i, t /= 10)
a[i] = (t += a[i]*b) % 10;
a[0] = i-1;
}
int main(void)
{
int i, j, x, n;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
for (scanf("%d %d", &N, &K); N; --N)
{
scanf("%d", &x);
for (i = 2; i <= x; ++i)
for (n = i, j = 2; j <= n; ++j)
{
if (n%j) continue;
for (; !(n%j); n /= j) ++cnt[j];
}
}
Res[0] = Res[1] = 1;
for (i = 1; i < MAX_VAL; ++i)
for (j = 0; j < (K-cnt[i]%K)%K; ++j)
mul(Res, i);
for (i = Res[0]; i > 0; --i)
printf("%d", Res[i]);
printf("\n");
return 0;
}