Cod sursa(job #2976345)

Utilizator alexvali23alexandru alexvali23 Data 8 februarie 2023 23:12:13
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream f("fact.in");
ofstream g("fact.out");
long long v[20];

void gen()
{
    v[0] = 1;
    for(long long i = 1; i < 20; i++)
    {
        v[i] = 5 * v[i - 1];
    }
}

long long nrzero(long long x)
{
    long long cnt(0);
    for(long long i = 1; x / v[i]; i++)
    {
        cnt += x / v[i];
    }
    return cnt;
}
int main()
{
    long long n;
    f >> n;
    gen();
    long long st(1), dr(v[19]);
    while(st <= dr)
    {
        long long mid = (st + dr) / 2;
        if(nrzero(mid) >= n)
        {
            dr = mid - 1;
        }
        else
        {
            st = mid + 1;
        }
    }
    g << (nrzero(dr + 1) == n ? dr + 1 : -1);
}