Pagini recente » Cod sursa (job #688036) | Cod sursa (job #1094778) | Cod sursa (job #855911) | Cod sursa (job #1833032) | Cod sursa (job #381438)
Cod sursa(job #381438)
/*
Se da un nr intreg p. Sa se gaseasca cel mai mic nr strict pozitiv n
pentru care n! are exact p cifre de 0 la sfarsit...
*/
#include<stdio.h>
#include<limits.h>
FILE *fin, *fout;
long int n,p,inc,sf,nr,min;
long int zero(long int n){
long int i,nr;
nr=0;
i=5;
while(i<=n){
nr+=n/i;
i*=5;
}
return nr;
}
int main(){
fin=fopen("fact.in","r");
fout=fopen("fact.out","w");
fscanf(fin,"%ld",&p);
inc=1;
sf=LONG_MAX;
if(p==0){
fprintf(fout,"1");
return 0;
}
while(inc<=sf){
n=(inc+sf)/2;
nr=zero(n);
if(nr==p){
n=n-n%5;
fprintf(fout,"%ld",n);
break;
}
else
if(nr>p){
sf=n-1;
}
else{
inc=n+1;
}
}
if(inc>sf){
fprintf(fout,"-1");
}
fclose(fout);
fclose(fin);
return 0;
}