Cod sursa(job #485883)

Utilizator Teodor94Teodor Plop Teodor94 Data 19 septembrie 2010 19:56:18
Problema Factoriale Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<cstdio>

const int N=105;

int n,k,exp[N],rezz[N];

void citire()
{
	scanf("%d%d",&n,&k);
	int x,xx;
	for (int i=1;i<=n;++i)
	{
		scanf("%d",&x);
		for (int ii=2;ii<=x;++ii)
		{
			xx=ii;
			for (int j=2;j*j<=xx;++j)
				while (xx%j==0)
				{
					xx/=j;
					exp[j]++;
				}
			if (xx!=1)
				exp[xx]++;
		}
	}
}

void inmultesc(int a[],int x)
{
	int i,t=0;
	for (i=1;i<=a[0] || t;++i,t/=10)
		a[i]=(t+=a[i]*x)%10;
	a[0]=i-1;
}

void afis()
{
	for (int i=rezz[0];i>0;--i)
		printf("%d",rezz[i]);
	printf("\n");
}

void rez()
{
	rezz[0]=1;
	rezz[1]=1;
	for (int i=2;i<=97;++i)
		if (exp[i]%k!=0)
			for (int j=1;j<=k-(exp[i]%k);++j)
				inmultesc(rezz,i);
	afis();
}

int main()
{
	freopen("factoriale.in","r",stdin);
	freopen("factoriale.out","w",stdout);
	citire();
	rez();
	return 0;
}