Cod sursa(job #1453733)

Utilizator din99danyMatei Daniel din99dany Data 24 iunie 2015 15:12:17
Problema Factorial Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
using namespace std;

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);

    int n, p, i, j, k, t, st, dr, mid;

    scanf("%d",&p);

    st = 1;
    dr = 200001;
    if( p == 0 ) printf("1");
    else {
            while( st <= dr ){
                mid = ( st + dr ) / 2;
                j = mid;
                t = 0; k = 5;
                while( k <= mid ){
                    t += mid / k;
                    k *= 5;
                }
                //printf(">>%d\n",t);
                if( t == p ){
                    mid = mid - mid % 5;
                    printf("%d",mid);
                    return 0;
                }
                else if( t > p ) dr = mid - 1;
                else st = mid + 1;
            }

            printf("-1");


    }

    return 0;
}