Cod sursa(job #695207)
| Utilizator | Data | 28 februarie 2012 11:11:10 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include <iostream>
#include <cstdio>
using namespace std;
int zeroT;
int endZeros(int num)
{
int c=0,i;
for(i=5;i<=num;i*=5)
c+=num/i;
return c;
}
int binSearch(int l, int r)
{
if(l==r)
{
if(endZeros(l)==zeroT)
return l;
else
return -1;
}
else
{
int m=(l+r)/2;
if(endZeros(m)<zeroT)
return binSearch(m+1,r);
else
return binSearch(l,m);
}
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
cin>>zeroT;
cout<<binSearch(1,500000000);
return 0;
}