Pagini recente » Cod sursa (job #2998678) | Cod sursa (job #199025) | Cod sursa (job #993406) | Cod sursa (job #2352445) | Cod sursa (job #2911291)
#include <fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
int n,k,v[105],divizori[105],ciur[105],x,q,f[105],prod=1;
int sir[10005];
void prim()
{
ciur[0]=ciur[1]=1;
for(int i=2;i<=100;i++)
{
if(ciur[i]==0)
{
divizori[++k]=i;
for(int j=2*i;j<=100;j=j+i)
{
ciur[j]=1;
}
}
}
}
void multiply(int nr)
{
int t=0;
for(int i=1;i<=sir[0];i++)
{
sir[i]=sir[i]*nr+t;
t=sir[i]/10;
sir[i]%=10;
}
while(t)
{
sir[++sir[0]]=t%10;
t/=10;
}
}
int main()
{
fin>>n>>q;
sir[0]=1;
sir[1]=1;
prim();
for(int i=1;i<=n;i++)
{
fin>>x;
for(int j=2;j<=x;j++)
{
int xy=j;
for(int d=1;divizori[d]*divizori[d]<=xy;d++)
{
if(xy%divizori[d]==0)
{
while(xy%divizori[d]==0)
{
f[divizori[d]]++;
xy/=divizori[d];
}
}
}
if(xy!=1)
{
f[xy]++;
}
}
}
for(int i=1;i<=100;i++)
{
if(f[i])
{
while(f[i]%q!=0)
{
multiply(i);
f[i]++;
}
}
}
for(int i=sir[0];i>=1;i--)
{
fout<<sir[i];
}
}