Cod sursa(job #432110)

Utilizator drywaterLazar Vlad drywater Data 1 aprilie 2010 20:18:42
Problema Factoriale Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
FILE *f=fopen("factoriale.in","r"),*g=fopen("factoriale.out","w");
long long n,k,i,v[101],x[101],s[10001],l,j,a;
int main(void)
{
	fscanf(f,"%lld%lld",&n,&k);
	for (i=1;i<=n;i++)
	{
		fscanf(f,"%lld",&x[i]);
		a=x[i];
		for (l=2;l<=a;l++)
		{
		x[i]=l;
		while (x[i]%2==0)
		{
			x[i]/=2;
			v[2]++;
		}
		for (j=3;x[i]>1;j+=2)
		{
			while (x[i]%j==0)
			{
				x[i]/=j;
				v[j]++;
			}
		}
		if (x[i]>1)
			v[x[i]]++;
		}
	}
	s[1]=1;
	s[0]=1;
	int r;
	for (i=2;i<=101;i++)
	{
		if (v[i]==0) continue;
		while (v[i]%k!=0)
		{
			v[i]++;
			r=0;
			for (j=1;j<=s[0];j++)
			{
				s[j]=s[j]*i+r;
				r=s[j]/10;
				s[j]%=10;
			}
			while (r!=0)
			{
				s[++s[0]]=r%10;
				r/=10;
			}
		}
	}
	for (i=s[0];i>=1;i--)
		fprintf(g,"%lld",s[i]);
	fprintf(g,"\n");
	fclose(g);
	return 0;
}