Cod sursa(job #2152870)

Utilizator gavra_bogdanBogdan Gavra gavra_bogdan Data 5 martie 2018 20:41:34
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;
int expr(int n)
{
    int p5=1,s=0;
    while(p5<n)
        p5*=5;
    if(p5>n)
        p5/=5;
    while(p5>1)
    {
        s+=n/p5;
        p5/=5;
    }
    return s;
}
int main()
{
    ifstream cin("fact.in");
    ofstream cout("fact.out");
    int p,poz=INT_MAX;
    cin>>p;
    int dr=500000000;
    int st=1;
    int mijl=(st+dr)/2;
    while(st<=dr)
    {
        if(expr(mijl)>=p)
            dr=mijl-1;
        if(expr(mijl)==p and mijl<poz)
            poz=mijl;
        if(expr(mijl)<p)
            st=mijl+1;
        mijl=(st+dr)/2;
    }
    if(poz!=INT_MAX)
    cout<<poz;
    else
    cout<<"-1";
    return 0;
}