Cod sursa(job #1032788)
| Utilizator | Data | 16 noiembrie 2013 01:45:05 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <fstream>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int p;
int zero(int m)
{
int i, z=0;
for(i=5; i<=m; i*=5) z+=m/i;
return z;
}
int cautbin(int st, int dr)
{
int m, z;
while(st<=dr)
{
m=(st+dr)/2;
z=zero(m);
if(z==p && st==dr) return m;
if(z==p) dr=m;
else
if(z<p) st=m+1;
else dr=m-1;
}
return -1;
}
int main()
{
cin>>p;
cout<<cautbin(1, 500000000);
return 0;
}
