Cod sursa(job #2988759)
Utilizator | Data | 5 martie 2023 14:22:53 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <fstream>
#include <climits>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int nr0(int a)
{
int cnt=0,p=5;
while(a>=p)
{
cnt+=a/p;
p*=5;
}
return cnt;
}
int main()
{
//cout<<nr0(25);
int n,st=0,dr=INT_MAX-1,m,ok=0,m1;
cin>>n;
if(n==0){
cout<<1;return 0;}
while(st<=dr)
{
m=(st+dr)/2;
m1=nr0(m);
if(m1==n){
ok=1;break;}
else if(m1<n)
st=m+1;
else
dr=m-1;
}
m=m-m%5;
if(ok==0)
cout<<-1;
else
cout<<m;
return 0;
}