Mai intai trebuie sa te autentifici.
Cod sursa(job #434372)
Utilizator | Data | 5 aprilie 2010 19:24:26 | |
---|---|---|---|
Problema | Factorial | Scor | 90 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.7 kb |
#include<stdlib.h>
#include<cstdio>
using namespace std;
inline int zero( int mij )
{
int p = 0;
while ( mij )
{
p += mij / 5 ;
mij /= 5 ;
}
return p;
}
int main()
{
int mij,p,st,dr,val,ct,a;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
st = 0;
dr = 5 * p;
while (st < dr)
{
mij = st + (dr - st) / 2;
if (zero(mij) == p) {val = mij;break;}
else if (zero(mij) < p) st = mij + 1 ;
else if (zero(mij) > p) dr = mij - 1 ;
}
for ( ; val % 5 ; val--);
if ( zero(mij) == p ) printf("%d",val);
else printf("-1");
return 0;
}