Cod sursa(job #2594713)

Utilizator Wister1043Silaghi Razvan-Andrei Wister1043 Data 6 aprilie 2020 15:45:47
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <iostream>
#include <cmath>
#include <fstream>

using namespace std;

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

int factorial(int numar)
{
    int val=0;
    while(numar/5>0)
    {
        val+=numar/5;
        numar=numar/5;
    }
    return val;
}

int main()
{
    long long P, N;
    fin>>P;
    long long st=1, dr=P;
    if(P==0)
    {
        fout<<1;
    }
    else
    {
        while(st<dr)
        {
            long long mid=(st+dr)/2;
            if(factorial(mid*5)<P)
            {
                st=mid+1;
            }
            else
            {
                dr=mid;
            }
        }
        if(factorial(st*5)!=P)
        {
            fout<<-1;
        }
        else
        {
            fout<<st*5;
        }
    }
    return 0;
}