Pagini recente » Cod sursa (job #1758727) | Cod sursa (job #1852023) | Cod sursa (job #1940388) | Cod sursa (job #1543004) | Cod sursa (job #1143583)
#include <cstdio>
#include <bitset>
using namespace std;
short v[101];
short x[3]={2,3,7};
int A[1000];
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()
{
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
int n,i,j,k,z,r,m,q,u,d,max=7;
scanf("%d%d",&n,&k);
A[++A[0]]=1;
for(i=0;i<n;i++)
{
scanf("%d",&z);
for(r=2;r<=z;r++)
{
u=r;
d=0;
while(u>1&&d<=2)
{
q=0;
while(u%x[d]==0)
{
q++;
u/=x[d];
}
v[x[d]]+=q;
d++;
}
if(u>1) {v[u]++;if(u>max) max=u;}
}
}
for(i=2;i<=max;i++)
{
if(v[i]%k!=0) for(r=1;r<=k-v[i]%k;r++) mul(A,i);
}
for(i=A[0];i>=1;i--) printf("%d",A[i]);
}