Pagini recente » Cod sursa (job #1378925) | Cod sursa (job #1493529) | Cod sursa (job #244238) | Cod sursa (job #2104517) | Cod sursa (job #12859)
Cod sursa(job #12859)
#include<stdio.h>
#define P 100000000
#define N 500000
struct puteri{
int val,zero;
};
int n,p;
puteri v[N];
void citire(){
FILE *in=fopen("fact.in","r");
fscanf(in,"%d",&p);
fclose(in);
v[0].val=1;
v[0].zero=0;
for(n=1;v[n-1].zero<=p;n++){
v[n].zero=v[n-1].val+v[n-1].zero;
v[n].val=5*v[n-1].val;
}
}
int calcul(int p){
int i,s=0;
if(!p)
return 1;
while(p){
for(i=0;i<n&&v[i].zero<=p;i++);
i--;
s+=v[i].val*(p/v[i].zero);
p%=v[i].zero;
}
return s;
}
void scrie(){
int r1=calcul(p),r2=calcul(p+1);
FILE *out=fopen("fact.out","w");
if(r1==r2)
fprintf(out,"-1\n");
else
fprintf(out,"%d\n",r1);
fclose(out);
}
int main(){
citire();
scrie();
return 0;
}