Pagini recente » Cod sursa (job #2001631) | Cod sursa (job #2735876) | Istoria paginii utilizator/petre987 | Cod sursa (job #1360966) | Cod sursa (job #1418979)
#include<cstdio>
#include<cstring>
#include<algorithm>
#define Nmax 105
using namespace std;
int n,k,i,j,v[Nmax],p,m;
int pr[Nmax],sol[Nmax*Nmax];
bool w[Nmax];
void numereprime()
{
for (i=2;i<=Nmax-5;i++)
if (!w[i])
{
pr[++pr[0]]=i;
for (j=i*i;j<=Nmax-5;j+=i)
w[j]=1;
}
}
void mul(int A[],int B)
{
int i=0,t=0;
for (i=1; i<=A[0] || t;++i)
{
A[i]=A[i]*B+t;
t=A[i]/10;
A[i]=A[i]%10;
}
A[0]=i-1;
}
int main()
{
freopen("factoriale.in","r",stdin);
freopen("factoriale.out","w",stdout);
scanf("%d %d",&n,&k);
for (i=1;i<=n;i++)
scanf("%d",&v[i]);
numereprime();
sol[0]=1; sol[1]=1;
for (i=1;i<=pr[0];i++)
{
p=0;
for (j=1;j<=n;j++)
{
m=v[j];
while (m>=pr[i])
{
p+=m/pr[i];
m=m/pr[i];
}
}
if (p==0) break;
if (p%k==0) continue;
for (j=1;j<=k-(p%k);++j)
mul(sol,pr[i]);
}
for (i=sol[0];i>=1;--i)
printf("%d",sol[i]);
return 0;
}