Pagini recente » Cod sursa (job #3160167) | Istoria paginii utilizator/unibuc_barbalau_bucur_matei | Cod sursa (job #1517397) | Cod sursa (job #1438532) | Cod sursa (job #164611)
Cod sursa(job #164611)
#include <stdio.h>
int s[101];
int n, k;
int i, j, h, g;
int nrp, pr[101], exp[101];
int sol[1001];
void Multiply(int a);
int main()
{
freopen("factoriale.in", "r", stdin);
freopen("factoriale.out", "w", stdout);
scanf("%d %d", &n, &k);
for ( i = 2; i <= 100; i++ )
for ( j = i; i*j <= 100; j++ )
s[i*j] = 1;
for ( i = 2; i <= 100; i++ )
if ( !s[i] ) nrp++, pr[nrp] = i;
for ( i = 1; i <= n; i++ )
{
scanf("%d", &h);
for ( j = 1; j <= nrp; j++ )
{
g = pr[j];
while ( h >= g ) exp[j]+=h/g, g *= pr[j];
}
}
sol[0] = sol[1] = 1;
for ( i = 1; i <= nrp; i++ )
{
g = (k-(exp[i]%k))%k;
for ( j = 1; j <= g; j++ )
Multiply(pr[i]);
}
for ( i = sol[0]; i >= 1; i-- )
printf("%d", sol[i]);
printf("\n");
return 0;
}
void Multiply(int a)
{
int i, t = 0;
for ( i = 1; i <= sol[0] || t; i++, t /= 10 )
sol[i] = (t += sol[i] * a) % 10;
sol[0] = i - 1;
}