Cod sursa(job #2623072)

Utilizator miramaria27Stroie Mira miramaria27 Data 2 iunie 2020 16:13:46
Problema Factorial Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>

using namespace std;
///consideram descompunerea lui x! in factori primi

int cinci(int x)
{
    int result=0;
    while(x/5)
    {
        ///prima oara aflam numarul de 5 in componenta x!, apoi numarul de 5 in plus - provenite de la 25 -, etc...
        result+=x/5;
        x=x/5;
    }
    return result;
}
long long factorial(long long k)
{
    ///avem un algoritm asemanator cautarii binare.
    long long i=0,j=5*(k);
    if(k==0)return 1;
    long long m=1;
    while(i<j)
    {
        m=(i+j)/2;
        int actual=cinci(m);
        if(actual>=k)
           j=m;
        else i=m+1;
    }
    return i;
}
int main()
{
    ifstream in("fact.in");
    ofstream out("fact.out");
    int P;
    in>>P;
    out<<factorial(P)<<"\n";
    return 0;
}