Pagini recente » Cod sursa (job #2888742) | Cod sursa (job #1074847) | Cod sursa (job #1724905) | Cod sursa (job #727153) | Cod sursa (job #727481)
Cod sursa(job #727481)
#include<stdio.h>
long p;
FILE*f=fopen("fact.in","r"),*g=fopen("fact.out","w");
void citire(){
fscanf(f,"%ld ",&p);
fclose(f);
}
int aparitie_5(long x){
long n=1,fin=x,s=0;
while(n<fin){
s+=fin/n;
n*=5;
}
return s;
}
int aparitie_2(long x){
long n=1,fin=x,s=0;
while(n<fin){
s+=fin/n;
n*=2;
}
return s;
}
int verificare(long x){
long nr_2,nr_5;
nr_2=aparitie_5(x);
nr_5=aparitie_2(x);
if(nr_2>p&&nr_5>p){return -1;}
if((nr_2==p&&nr_5>=p)||(nr_2>=p&&nr_5==p)||(nr_2==p&&nr_5==p)){
return 0;
}
return 1;
}
void aflare_n(){
long x=1,y=p,mij;
mij=(x+y)/2;
while(1){
x=verificare(mij);
if(x==-1){
y=mij;
}
else if(x==0){break;}
else{
x=mij;
}
mij=(x+y)/2;
}
fprintf(g,"%ld ",mij);
fclose(g);
}
int main(){
citire();
aflare_n();
return 0;
}