Cod sursa(job #2378591)

Utilizator victorv88Veltan Victor victorv88 Data 12 martie 2019 14:14:24
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <cstdio>
#include <stdlib.h>
using namespace std;

int p, x=5, nr,aux;

long long proprietate(long long val)
{
    long long num=0, x=5;
    while (x<=val)
    {
        num+=(val/x);
        x*=5;
    }
    return num;
}

void solve(int val_cautat)
{
    if (val_cautat==0)
    {
        cout << 1;
        return;
    }
    long long st=1, dr=(1LL<<60);
    while (st<=dr)
    {
        long long mij=(st+dr)/2;
        long long prop=proprietate(mij);
        if (prop>=val_cautat)
        {
            dr=mij-1;
        }
        else
            st=mij+1;
    }
    if (proprietate(st)==val_cautat)
    {
        cout << st;
    }
    else
        cout << -1;
}

int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    cin >> p;
    solve(p);
    return 0;
}