Cod sursa(job #322310)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 8 iunie 2009 16:24:09
Problema Factoriale Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <stdio.h>

using namespace std;

FILE *f,*s;

int n,k,i,j,q,x,nr,v[100],rez[10000];

void inmultire(int x[10000], int y)
{
	unsigned long T=0;
	
	for(i=1;i<=x[0];i++)
	{
		x[i]=x[i]*y+T; 
		T=x[i]/10; 
		x[i]=x[i]%10; 
	}
	
	while (T) 
	{
		x[0]++;
		x[x[0]]=T%10;
		T/=10;
	}
}

int main()
{
	
	f=fopen("factoriale.in","r");
	s=fopen("factoriale.out","w");
	
	fscanf(f,"%d %d",&n,&k);
	
	for(i=1;i<=n;i++)
	{
		fscanf(f,"%d",&nr);
		
		for(q=1;q<=nr;q++)
		{
			x=q;
			while(x>1)
			{
				if(x%2==0)
				{
					v[2]++;
					x/=2;
				}	
				else
					break;
			}	
			
			j=3;
			while(x>1)
			{
				if(x%j==0)
				{
					v[j]++;
					x/=j;
				}	
				else
					j+=2;
			}	
		}	
	}
	
	rez[0]=1;
	rez[1]=1;

	for(j=1;j<=100;j++)
	{
		x=0;
		if(v[j]%k!=0)
		{
			x=k-v[j]%k;
		}
		
		if(x)
		{
			for(q=x;q>0;q--)
				inmultire(rez,j);
		}
	}	
	
	for(i=rez[0];i>0;i--)
	{
		fprintf(s,"%d",rez[i]);
	}	
	
	fclose(s);
	
	return 0;
}