Pagini recente » Cod sursa (job #2932570) | Cod sursa (job #2768020) | Cod sursa (job #1741986) | Cod sursa (job #2139158) | Cod sursa (job #138910)
Cod sursa(job #138910)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("factoriale.in");
ofstream g("factoriale.out");
int f[100],i,n,k,maxp,poz,a[30000],o,m,l;
void factori(int o)
{
for(i=2;i<=o;i++)
{
int d=2,aux=i;while(aux!=1)
{
while (aux%d==0)
if (f[d]+1!=k) {f[d]=k-(++f[d]%k);aux/=k;}
else {f[d]=0;aux/=d;}
d++;if (aux%d==0) maxp=d;
}}}
void make_sol(int m)
{
int t=0,i,aux;
for(i=0;i<=poz;i++)
{aux=t+a[i]*m;a[i]=aux%10;t=aux/10;}
while(t){a[++poz]=t%10;t/=10;}
}
int main()
{
fin>>n>>k;
maxp=2;poz=0;a[0]=1;
for(int l=1;l<=n;l++)
{fin>>o;factori(o);}
for(m=2;m<=maxp;m++)
for(l=1;l<=f[m];l++)
make_sol(m);
for(i=0;i<=poz;i++)
g<<a[i];
fin.close();
g.close();
}