Cod sursa(job #303113)

Utilizator ooctavTuchila Octavian ooctav Data 9 aprilie 2009 16:01:54
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
// factoriale.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
int e[101][101];
int element[101];
int numere[101];
bool ciu[101];
int m[101];
int n,k,maxim=0,a;
long long inm=1;
void ciur()
{
	for(int i=2;i*i<=100;i++)
		if(!ciu[i])
		for(int j=i*i;j<=100;j=j+i)
			ciu[j]=true;

}
int main()
{
	freopen("factoriale.in","r",stdin);
	freopen("factoriale.out","w",stdout);
	scanf("%d %d",&n,&k);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a);
		numere[a]=true;
		if(a>maxim)
			maxim=a;
	}
	ciur();
	for(int i=2;i<=maxim;i++)
	{
		int copiei=i;
		for(int j=2;j<=maxim;j++)
		{
			if(!ciu[j] && copiei%j==0)
				while(copiei%j==0)
				{
					element[j]++;
					copiei=copiei/j;
				}
			if(copiei==1)
				break;
		}
		if(numere[i])
			for(int j=1;j<=maxim;j++)
				m[j]=m[j]+element[j];
	}

	for(int i=1;i<=maxim; i++)
		if(m[i]%k!=0)
			for(int j=1;j<=k-m[i]%k;j++)
				inm=inm*i;
	printf("%lld",inm);

	return 0;
}