Cod sursa(job #3331889)

Utilizator adinacevalaAdina Cevala adinacevala Data 1 ianuarie 2026 14:26:36
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>
#define int long long
#define cin fin
#define cout fout
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int nr_de_zero(int n)
{
    int cnt=0;
    while(n>0)
    {
        n/=5;///catul impartirii reprezinta nr de numere care au nr de zero echivalent cu nr de 5-uri
        cnt+=n;
    }
    return cnt;
}
int32_t main()
{
    int p;
    cin>>p;
    int raspuns=-1;
    if(p==0){
        cout<<1;
        return 0;
    }
    else
    {
        int dr=5*p+5;
        int st=1;
        while(st<=dr)
        {
            int mij=(st+dr)/2;
            int rez=nr_de_zero(mij);///calculam in functie de nr de zerouri ale mijlocului
            if(rez<p)
            {
                st=mij+1;
            }
            else
            {
                if(rez==p)///daca sunt egale
                {
                    raspuns=mij;///inseamna ca a, gasit raspunsul, asa ca salvam mijlocul
                }
                dr=mij-1;
            }
        }
    }
    cout<<raspuns<<endl;
}