Cod sursa(job #2150577)
Utilizator | Piscu Stefan Constantin Stefan_Piscu | Data | 3 martie 2018 17:25:46 |
---|---|---|---|
Problema | Factorial | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.58 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int r;
int main()
{
f>>r;
int q=500000000, p=1, m, ok=0;
while(p<q)
{
m=p+(q-p)/2;
int nr=0;
int pr=5;
while(pr<m) nr=nr+m/pr, pr*=5;
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;
int pr=5;
while(m/pr) nr=nr+m/pr, pr*=5;
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;
}