Pagini recente » Clasament Summer Challenge 2009, Runda 2 | Cod sursa (job #175821) | Cod sursa (job #515436) | Cod sursa (job #3161289) | Cod sursa (job #340306)
Cod sursa(job #340306)
Utilizator |
Zethpix 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;
}