Cod sursa(job #2986552)
Utilizator | Data | 28 februarie 2023 19:15:06 | |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int p;
int zerocount(int n)
{
int cp=5;
int res=0;
while(n>=cp)
{
res+=n/cp;
cp*=5;
}
return res;
}
int bs(int st,int dr)
{
while(st<dr)
{
int mid=dr-(dr-st)/2;
if(zerocount(mid)==p)
return mid;
else if(zerocount(mid)<p)
st=mid+1;
else if(zerocount(mid)>p)
dr=mid-1;
}
}
int main()
{
in>>p;
int mid=bs(1,1000000000);
while(zerocount(mid)==p && mid>=1)
mid--;
out<<mid+1;
}