Cod sursa(job #2853595)
| Utilizator | Data | 20 februarie 2022 14:04:40 | |
|---|---|---|---|
| Problema | Factorial | Scor | 90 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.62 kb |
#include<fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
#define ll long long
ll p;
ll calc_nr0(ll x)
{
ll put=5,rez=0;
while(x/put>0)
{
rez=rez+x/put;
put*=5;
}
return rez;
}
int main()
{
fin>>p;
ll st,dr,mij;
st=1;
dr=1e18;
while(st<=dr)
{
mij=(st+dr)/2;
if(calc_nr0(mij)==p && (mij==1 || calc_nr0(mij-1)<p))
{
break;
}
else if(calc_nr0(mij)==p || calc_nr0(mij)>p)
dr=mij-1;
else
st=mij+1;
}
fout<<mij;
}
