Cod sursa(job #1589932)

Utilizator lraduRadu Lucut lradu Data 4 februarie 2016 16:16:08
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <math.h>
#include <string>
#include <vector>
#include <stdio.h>
#include <queue>

#define LL long long
#define pb push_back
#define lm 16005
#define MOD 1000000000

using namespace std;

LL int a,b,m,x;
int p,c;

int main()
{

    freopen("fact.in", "r", stdin);
    freopen("fact.out","w",stdout);
    scanf("%d",&p);
    a=1;
    b=MOD;
    if(!p)
        printf("1");
    else
        while(a<=b)
        {
            m=(a+b)/2;
            //printf("%d\n",m);
            x=m;
            c=0;
            while(m)
            {
                c+=m/5;
                m=m/5;
            }
            if(c==p)
            {
                printf("%d",x-x%5);
                b=-1;
            }
            else
                if(c<p)
                    a=(a+b)/2+1;
                else
                    b=(a+b)/2-1;
        }
    if(b!=-1)
        printf("-1");

    return 0;
}