Cod sursa(job #434376)

Utilizator idomiralinIdomir Alin idomiralin Data 5 aprilie 2010 19:34:42
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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;
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);

    scanf("%d",&p);
    if ( !p ) printf("1");
    else if ( p == 1) printf("5");
    else{
    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;
}