Cod sursa(job #2295086)
| Utilizator | Data | 3 decembrie 2018 03:49:38 | |
|---|---|---|---|
| Problema | Cautare binara | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int fact(int n)
{ int i,val=0;
for(i=5; n/i>=1; i*=5)
val+=(n/i);
return val;
}
int main()
{ fin>>p;
if(p==0) {fout<<1; return 0;}
else if(p==1) {fout<<5; return 0;}
int s=1,d=2000000000;
int pp=0;
int m;
while(s<=d)
{ m=(s+d)/2;
if(fact(m)==p) {fout<<m/5*5; return 0;}
else if(fact(m)<p) s=m+1;
else d=m-1;
}
fout<<-1;
return 0;
}
