Cod sursa(job #2660083)

Utilizator marcumihaiMarcu Mihai marcumihai Data 18 octombrie 2020 08:47:41
Problema Factorial Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f ("fact.in");
ofstream g ("fact.out");
int n;
int p;

void citire ()
{
    f>>n;
}
int factorial(long long x)
{
    long long p=5;
    int cont=0;
    while(p<=x)
    {
        cont+=x/p;
        p*=5;
    }
    return cont;

}
void rezolvare()
{
    if(n==0)
    {
        g<<1;
        return ;

    }
    long long  st=1;
    long long  dr=1000000000;
    long long mij=(st+dr)/2;
    while(st<=dr)
    {
        if(factorial(mij)==n && factorial(mij-1)<n)
        {
            g<<mij;
            return ;
        }
        if(factorial(mij)<n)
            st=mij+1;
        else
            dr=mij-1;
        mij=(st+dr)/2;

    }
}
int main()
{

    citire();
    rezolvare();
    return 0;
}