Cod sursa(job #2024208)

Utilizator attack2002Girban Alexandru attack2002 Data 20 septembrie 2017 09:37:28
Problema Factorial Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 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;
    if(P==0)
    {
        write<<1;
    }
    else
    {
        int cpst=5,cpdr=403225807,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;
}