Cod sursa(job #2571956)
| Utilizator | Data | 5 martie 2020 10:58:30 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <fstream>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
long long st,dr,mid,sol;
long long findn(long long n){
long long p=5,rasp=0;
while(p<=n){
rasp+=n/p;
p*=5;
}
return rasp;
}
int main()
{
long long n,p;
cin>>p;
if(p==0){
cout<<"1";
return 0;
}
st=1,dr=2000000000;
while(st<=dr){
mid=(st+dr)/2;
n=findn(mid);
if(n<p){
st=mid+1;
}
else{
if(n==p)
sol=mid;
dr=mid-1;
}
}
if(sol==0){
cout<<"-1";
return 0;
}
cout<<sol;
return 0;
}
