Cod sursa(job #2666638)
| Utilizator | Data | 2 noiembrie 2020 11:41:31 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int n,mijloc,p,a,st,dr;
int nrzero(int x)
{
int rasp=0;
for(int i=5; i<=x; i*=5) rasp+=x/i;
return rasp;
}
int main()
{
fin>>p;
dr=1<<30;
st=0;
while(dr-st>1)
{
mijloc=st+(dr-st)/2;
a= nrzero(mijloc);
if(a==p)
{
if(mijloc%5==0)fout<<mijloc;
else fout<<mijloc-mijloc%5;
return 0;
}
if(a>p)dr=mijloc;
else st=mijloc;
}
if(nrzero(st)==p)fout<<mijloc;
else fout<<-1;
return 0;
}
