Cod sursa(job #2344624)

Utilizator marcogoldPop Mihali Marco Silviu marcogold Data 15 februarie 2019 12:47:57
Problema Factorial Scor 15
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include <fstream>
using namespace std;

ofstream fo("fact.out");
ifstream fi("fact.in");


int nrCif;

bool fac(int x)
{
    int cinci=0,doi=0;
    int sol=0;

    if(x!=0)
    {
        for(int i=1; i<=x; i++)
        {
            int ci=i;

            while(ci%5==0)
            {
                ci/=5;
                cinci++;
            }
            while(ci%2==0)
            {
                ci/=2;
                doi++;

            }
        }
        sol+=min(cinci,doi);
    }
    else
        sol++;

    if(sol<nrCif)
        return false;

    return true;
}

int main()
{
    fi>>nrCif;


    int poz=0;
    for(int i=19; i>=0; i--)
    {
        if( fac(poz+(1<<i))==false)
        {
            poz+=(1<<i);
        }

    }

    fo<<poz+1;

    fi.close();
    fo.close();
    return 0;
}