Cod sursa(job #2628477)
| Utilizator | Data | 16 iunie 2020 08:58:21 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int nrcif0(int x)
{
int i;
long long ans=0;
for(i=5;x/i>=1;i*=5)
ans+=x/i;
return ans;
}
int BS(int val)
{
long long st=0,dr=1e9,mijl,poz=0;
while(st<=dr)
{
mijl=(st+dr)/2;
if(nrcif0(mijl)>=val)
{
dr=mijl-1;
poz=mijl;
}
else
st=mijl+1;
}
return poz;
}
int main()
{
long long n,p;
fin>>p;
if(p==0)
fout<<1;
else
fout<<BS(p);
return 0;
}
