Cod sursa(job #3130252)

Utilizator Roxana_3Asavei Roxana Roxana_3 Data 17 mai 2023 11:21:49
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#define N 100000
using namespace std;


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

int Puteri5(int n)
{
    int ct = 0;
    for(int i = 5; i <= n; i *= 5)
        ct += n / i;
    return ct;
}


int main()
{
    // 2000000000! are 500000061 zerouri
    // log2(2000000000) = 31 * log5(2000000000)

    int p;
    fin >> p;

    int st = 1, dr = 2000000000;
    int mij;
    int possible = -1;

    while(st <= dr)
    {
        mij = (st + dr) / 2;
        int ct5 = Puteri5(mij);
        if(ct5 == p)
        {
            possible = mij;
            dr = mij - 1;
        }

        else if(ct5 < p) st = mij + 1;
        else dr = mij - 1;
    }

    fout << possible;;

    return 0;
}