Cod sursa(job #2149667)
Utilizator | Piscu Stefan Constantin Stefan_Piscu | Data | 2 martie 2018 20:44:18 |
---|---|---|---|
Problema | Factorial | Scor | 35 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int r;
int main()
{
f>>r;
int q=50000000, p=1, m, ok=0;
while(p<q)
{
m=p+(q-p)/2;
int nr=0, m2=m;
while(m2>=5) m2/=5, nr+=m2;
if(nr==r) p=m, q=m;
else if(nr<r) p=m+1;
else q=m-1;
}
m=p+(q-p)/2;
int nr=0, m2=m;
while(m2>=5) m2/=5, nr+=m2;
if(nr==r) ok=m;
else if(nr<r) p=m+1;
else q=m-1;
if(ok==0) g<<-1<<"\n";
else g<<ok-ok%5;
return 0;
}