Pagini recente » Istoria paginii utilizator/anthonysolomon2769 | Monitorul de evaluare | Diferente pentru utilizator/visuianmihai intre reviziile 52 si 53 | Cod sursa (job #3135440) | Cod sursa (job #257079)
Cod sursa(job #257079)
#include<iostream.h>
#include<stdio.h>
int main()
{
unsigned long int mid,hi,lo,putere,p,nrz,factor;
freopen("fact.in","r",stdin);freopen("fact.out","w",stdout);
scanf("%ld",&p);
lo=0;hi=4000000000;
while(lo<=hi)
{mid=lo+(hi-lo)/2;nrz=0;factor=5;
do
{putere=mid/factor;nrz+=putere;factor*=5;}
while(putere);
if(nrz<p)
lo=mid+1;
else {if(nrz>p)
hi=mid-1;
else
{while(mid>1 && nrz==p)
{mid--;nrz=0;factor=5;
do
{putere=mid/factor;nrz+=putere;factor*=5;}
while(putere);}
if(nrz!=p)
printf("%ld",(mid+1));
else
printf("1");
return 0;}}
}
printf("-1");return 0;
fclose(stdin);fclose(stdout);
}