Pagini recente » Cod sursa (job #1512938) | Cod sursa (job #1332918) | Cod sursa (job #1564546) | Cod sursa (job #1200030) | Cod sursa (job #2416078)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
const int NMAX = 105;
int put[NMAX];
int rasp[20005];
void inmultire(int nr)
{
int r=0;
for(int i=1;i<=rasp[0];i++)
{
rasp[i]=rasp[i]*nr+r;
r=rasp[i]/10;
rasp[i]%=10;
}
while(r!=0)
{
rasp[++rasp[0]]=r%10;
r/=10;
}
}
int main()
{
int n,k;
fin >> n >> k;
int x;
for(int i=1;i<=n;i++)
{
fin >> x;
for(int j=2;j<=x;j++)
{
int nr=j;
for(int u=2;u*u<=nr;u++)
{
while(nr%u==0)
{
nr/=u;
put[u]++;
}
}
if(nr!=1) put[nr]++;
}
}
rasp[0]=rasp[1]=1;
for(int i=2;i<=NMAX-5;i++)
{
if(put[i]!=0 and put[i]%k!=0)
{
while(put[i]%k!=0)
{
inmultire(i);
put[i]++;
}
}
}
for(int i=rasp[0];i>=1;i--)
fout << rasp[i];
return 0;
}