Cod sursa(job #137534)

Utilizator bazubBazu Bogdan bazub Data 17 februarie 2008 12:36:00
Problema Factoriale Scor 10
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 5-8 Marime 0.9 kb
#include<fstream.h>
long long n,k,i,a,j,aux,ex[100],d,numar[1005],l,t,s;
int main(){
ifstream fin("factoriale.in");
ofstream fout("factoriale.out");
	fin>>n>>k;
	for(i=1;i<=n;i++){
		fin>>a;
		for(j=2;j<=a;j++){
			aux=j;
			while(aux%2==0){
				ex[2]++;
				aux/=2;
			}
			d=3;
			while(aux%d==0){
				ex[d]++;
				aux/=d;
				if(aux%d!=0 && d+2<=aux)
					d+=2;
			}
		}
	}
	numar[1]=1;
	numar[0]=1;
	for(i=2;i<=97;i++)
		if(ex[i]%k!=0){
			for(j=ex[i]%k+1;j<=k;j++){
				for(l=1;l<=numar[0];l++)
					numar[l]*=i;
				if(j%10==0 || j==k){
					t=0;
					for(l=1;l<=1000;l++){
						s=(numar[l]+t)%10;
						t=(numar[l]+t)/10;
						numar[l]=s;
                  if(l>numar[0] && numar[l]!=0)
                     numar[0]=l;
               }
            }
         }
         
         
		}
   for(i=numar[0];i>=1;i--)
      fout<<numar[i];
   return 0;
}