Cod sursa(job #789484)
Utilizator | Data | 18 septembrie 2012 13:14:45 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.48 kb |
#include <cstdio>
int zero(int n)
{
int p=5,nr=0;
while(n/p>0){nr+=n/p; p*=5;}
return nr;
}
int cbin(int p)
{
int l=1,r=(1<<31)-2,m;
while(l<r)
{
m=(l+r)/2;
if(zero(m)>=p)r=m; else l=m+1;
}
if(zero(r)==p)return r;
return -1;
}
int main()
{
int p;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
printf("%d\n",cbin(p));
return 0;
}