Cod sursa(job #2526040)
| Utilizator | Data | 18 ianuarie 2020 11:00:02 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
long long nrzero(long long n)
{
long long put5=5,cnt=0;
while(n/put5)
{
cnt+=n/put5;
put5*=5;
}
return cnt;
}
long long cautbin(int n)
{
long long pos=0,step=1LL*1<<60;
for(;step>0;step/=2)
if(step+pos<1LL*1<<60&&nrzero(step+pos)<n)
pos+=step;
if(nrzero(pos+1)==n)
return pos+1;
else return -1;
}
int main()
{
int n;
in>>n;
out<<cautbin(n);
return 0;
}
