Cod sursa(job #340306)

Utilizator ZethpixZethpix Zethpix Data 14 august 2009 09:53:57
Problema Factoriale Scor 0
Compilator cpp Status done
Runda w3 Marime 0.84 kb
#include <stdio.h>
long a[102],sol[10002],c[102],n,k,i,j;
void inmultire(long b){
	long t,i;
	i=1;
	t=0;
	while(i<=sol[0]||t){
		t=sol[i]*b+t;
		sol[i]=t%10;
		t/=10;
		i++;
	}
	sol[0]=i-1;
}
void calcul(long n){
	long i,x,t;
	for (i=1;i<=n;i++)
		a[i]=0;
	for(t=2;t<=n;t++){
		x=t;
		i=2;
		while(x%i==0){
			x/=i;
			a[i]++;
		}
		i=3;
		do{
			while(x%i==0){
				x/=i;
				a[i]++;
			}
			i+=2;
		}while(x!=1);
	}
}
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",&c[i]);
	sol[0]=1;
	sol[1]=1;
	for(i=1;i<=n;i++)
		calcul(c[i]);
	for(i=2;i<=n;i++)
		for(j=1;j<=k-a[i]%k;j++)
			inmultire(i);
	for(i=sol[0];i>=1;i--)
		fprintf(g,"%ld",sol[i]);
	fprintf(g,"\n");
	fclose(f);
	fclose(g);
	return 0;
}