Cod sursa(job #3121322)

Utilizator RaresHNDINeacsu Rares Andrei RaresHNDI Data 11 aprilie 2023 20:14:20
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fisin("fact.in");
ofstream fisout("fact.out");

long long int zerouri(long long int x)
{
    long long int y=x;long long int h=0;
    while(y!=0)
    {
        h+=y/5;
        y=y/5;
    }
    return h;
}

int main()
{
    long long int P;
    long long nr;
    int sol=-1;
    fisin>>P;
    if(P==0)
    {
        fisout<<1;
        return 0;
    }
    if(P==1)
    {
        fisout<<5;
        return 0;
    }
    long long int start=1,final=500000000;
    while(start<=final)
    {
        long long int mid=(start+final)/2;
        nr=zerouri(mid);
        if(nr==P)
        {
            sol=mid;
            final=mid-1;
        }
        else if(nr<P)
            start=mid+1;
        else
            final=mid-1;
    }
    fisout<<sol; 
    return 0;
}