Cod sursa(job #2785447)

Utilizator mariancaraba6Caraba Marian Ioan mariancaraba6 Data 18 octombrie 2021 18:17:11
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <cstring>
#include <fstream>

using namespace std;


ifstream fin("fact.in");
ofstream fout("fact.out");

int fact(int n)
{
    int c=0, p=5;
    while(p<=n)
    {
        c+=n/p;
        p*=5;
    }
    return c;
}

int cautare_binara(int st, int dr, int p)
{
    if(st>dr)
        return -1;
    else
    {
        int m=(st+dr)/2;
        int x=fact(m);
        if(x==p)
            return m;
        if(x<p)
            return cautare_binara(m+1, dr, p);
        else if(x>p)
            return cautare_binara(st, m-1, p);
    }
}
int main()
{
    int p, st=1, dr=2000000000;
    fin>>p;
    int t=cautare_binara(st, dr, p);
    if(p==0)
        fout<<1;
    else if(t==-1)
        fout<<t;
    else
        fout<<t-t%5;
}