Cod sursa(job #137907)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 17 februarie 2008 16:27:05
Problema Factoriale Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
long int n,k,i,x[105],sol[1000],uc,prim[105],j,xx,e,m;
int main()
{
	FILE *f,*g;f=fopen("factoriale.in","r");g=fopen("factoriale.out","w");
	fscanf(f,"%ld%ld",&n,&k);for(i=1;i<=n;i++)fscanf(f,"%ld",&x[i]);
	sol[0]=1;uc=0;
	for(i=2;i<=100;i++)
	 if(!prim[i])
	  { e=0;
	    for(j=2*i;j<=100;j++)prim[j]=1;
	    for(j=1;j<=n;j++)
	     { xx=x[j]/i;
	       while(xx)
		{ e+=xx;xx/=i;}
	     }
	    if(e%k)
	     { e%=k;e=k-e;
	       while(e)
		{ for(m=0;m<=uc;m++)sol[m]*=i;
		  for(m=0;m<=uc;m++){sol[m+1]=sol[m+1]+sol[m]/10;sol[m]%=10;}
		  while(sol[uc+1]){uc++;sol[uc+1]=sol[uc]/10;sol[uc]%=10;}
		  e--;
		}
	     }
	  }
	for(i=uc;i>=0;i--)fprintf(g,"%ld",sol[i]);
	fprintf(g,"\n");
	fcloseall();return 0;
}