Cod sursa(job #2021294)

Utilizator attack2002Girban Alexandru attack2002 Data 13 septembrie 2017 09:38:36
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<fstream>
using namespace std;
int nr_zerouri(int k)
{
    int t=0,p=5;
    while(k>=p)
    {
        t=t+k/p;
        p=p*5;
    }
    return t;
}
int main()
{
    ifstream read("fact.in");
    ofstream write("fact.out");
    int P;
    read>>P;
    int e5=0;
    if(P==0)
    {
        write<<1;
    }
    else
    {
        int cpst=5,cpdr=500000000,cpmj;
        while(cpst!=cpdr)
        {
            cpmj=(cpst+cpdr)/2;
            if(nr_zerouri(cpmj)>P)
            {
                cpdr=cpmj;
            }
            else if(nr_zerouri(cpmj)<P)
            {
                cpst=cpmj;
            }
            else if(nr_zerouri(cpmj)==P)
            {
                cpst=cpmj;
                cpdr=cpmj;
                break;
            }
        }
        if (nr_zerouri(cpst)==P) {write<<cpst-cpst%5;}
        else {write<<-1;}
    }
    return 0;
}
     /*   int n=5,ncpy;
        while(1)
        {
            ncpy=n;
            while(ncpy%5==0)
            {
                e5=e5+1;
                ncpy=ncpy/5;
            }
            n=n+5;
            if(e5==P)
            {
                write<<n-5;
                break;
            }
            if(e5>P)
            {
                write<<-1;
                break;
            }
        }
} */