Pagini recente » Cod sursa (job #421157) | Cod sursa (job #1038215) | Cod sursa (job #3190713) | Cod sursa (job #6899) | Cod sursa (job #3168399)
#include <fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
\
int v[101],nrmare[101],q[101];
bool ciur[101];
void produs(int nrmare[],int n)
{
int i,t=0;
for(i=1; i<=nrmare[0]; i++)
{
t=t+nrmare[i]*n;
nrmare[i]=t%10;
t=t/10;
}
while(t!=0)
{
nrmare[++nrmare[0]]=t%10;
t=t/10;
}
}
int main()
{
int n,k,d,x,p,s,i,r,j,nr=0;
ciur[0]=1;
ciur[1]=1;
for(i=2; i*i<=100; i++)
{
if(ciur[i]==0)
{
q[++nr]=i;
for(j=i*i; j<=100; j=j+i)
{
ciur[j]=1;
}
}
}
fin>>n>>k;
for(i=1; i<=n; i++)
{
fin>>r;
for(j=2; j<=r; j++)
{
x=j;
d=1;
while(q[d]*q[d]<=x&&d<=nr)
{
p=0;
while(x%q[d]==0)
{
p++;
x=x/q[d];
}
if(p!=0)v[q[d]]=v[q[d]]+p;
d++;
}
if(x>1)v[x]++;
}
}
s=1;
nrmare[0]=1;
nrmare[1]=1;
for(d=1; d<=nr; d++)
{
if(v[q[d]]!=0&&v[q[d]]%k!=0)
{
while(v[q[d]]%k!=0)
{
produs(nrmare,q[d]);
v[q[d]]++;
}
}
}
for(i=nrmare[0]; i>=1; i--)
{
fout<<nrmare[i];
}
return 0;
}