Cod sursa(job #2133409)

Utilizator RaduGiucleaGiuclea Radu RaduGiuclea Data 16 februarie 2018 21:45:51
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<cstdio>
using namespace std;
inline int p5(int k)
{
    int rez=1;
    while(k)
    {
        rez*=5,k--;
    }
    return rez;
}
inline int check(int a)
{
    int i,rez=0;
    for(i=1;p5(i)<=a;i++)
        rez+=a/p5(i);
    return rez;
}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int i,p,st=1,dr=500000000,mij,pp=-1,rez;
    scanf("%d",&p);
    while(st<=dr)
    {
        mij=(st+dr)/2;
        rez=check(mij);
        if(p==rez)
            pp=mij,dr=mij-1;
        if(p<rez)
            dr=mij-1;
        if(p>rez)
            st=mij+1;
    }
    printf("%d",pp);
    return 0;
}