Cod sursa(job #2628476)
Utilizator | Data | 16 iunie 2020 08:52:32 | |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int nrcif0(int x)
{
int i;
int ans=0;
for(i=5;x/i>=1;i*=5)
ans+=x/i;
return ans;
}
int BS(int val)
{
int st=0,dr=INT_MAX,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()
{
int n,p;
fin>>p;
if(p==0)
fout<<1;
else
fout<<BS(p);
}