Cod sursa(job #2044438)
| Utilizator | Data | 21 octombrie 2017 10:02:01 | |
|---|---|---|---|
| Problema | Factorial | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.73 kb |
#include <bits/stdc++.h>
using namespace std;
int p5(int x)
{
int exp=0,p=5;
while(x/p>0)
{
exp+=x/p;
p*=5;
}
return exp;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p,sol=-1,st=1,dr=100000000,mijl;
cin>>p;
if(p==0)
{
cout<<"1";
return 0;
}
mijl=(dr-st+1)/2;
while(st<=dr)
{
int x=p5(mijl);
//cout<<mijl<<" "<<x<<"\n";
if(x>p)
dr=mijl-1;
if(x<p)
st=mijl+1;
if(x==p)
{
sol=mijl;
dr=mijl-1;
}
mijl=(st+dr)/2;
}
cout<<sol;
return 0;
}
