Cod sursa(job #1375958)
| Utilizator | Data | 5 martie 2015 15:13:10 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
int st=1,dr=1<<30,mid,sol;
int cifre(int x)
{
int i=5,y=0;
while (i<=x) {
y+=x/i;
i*=5;
}
return y;
}
int main()
{
int i,j;
f>>i;
while (st<=dr) {
mid=(st+dr)>>1;
j=cifre(mid);
if (j>=i) {
sol=mid;
dr=mid-1;
}
else
st=mid+1;
}
if (cifre(sol)==i)
g<<sol<<'\n';
else
g<<-1<<'\n';
return 0;
}
