Cod sursa(job #1663134)
| Utilizator | Data | 25 martie 2016 16:06:47 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include<fstream>
using namespace std;
int zero(int n)
{
int s=0;
long long numitor=5;
while(numitor<=n)
{
s+=n/numitor;
numitor*=5;
}
return s;
}
int main()
{
ifstream cin("fact.in");
ofstream cout("fact.out");
int n,ans=0;
cin>>n;
int st=1,dr=(1LL<<31)-1;
while(st<=dr)
{
int mij=(st+dr)/2;
if(zero(mij)<n)
st=mij+1;
else
{
ans=mij;
dr=mij-1;
}
}
if(zero(ans)==n)
cout<<ans;
else
cout<<-1;
return 0;
}
