Cod sursa(job #2345388)

Utilizator MarutBrabete Marius Stelian Marut Data 16 februarie 2019 12:14:28
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<cstdio>
using namespace std;
int legendre(int n)
{
    int p=5,p1=5,s=0;
    while(p1<=n)
    {
        s+=n/p1;
        p1*=p;
    }
    return s;
}
int bs(int st, int dr, int val)
{
    int med=(st+dr)/2,ans=-1;
    while(st<=dr)
    {
        med=(st+dr)/2;
        if(legendre(med)>val) dr=med-1;
            else if(legendre(med)<val) st=med+1;
                else
                {
                    ans=med;
                    dr=med-1;
                }
    }
    return ans;
}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    int p,ans;
    scanf("%d",&p);
    ans=bs(1,2100000000,p);
    printf("%d",ans);
    return 0;
}