Cod sursa(job #1024268)

Utilizator andrei_diaconuAndrei Diaconu andrei_diaconu Data 8 noiembrie 2013 15:07:29
Problema Factorial Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("fact.in");
ofstream g("fact.out");
int nrdiv5(int nr);

int p, n, k, st, dr, nrd;
int main()
{
    f>>p;
    st=1;
    dr=5000000;
    while(st<=dr)
    {
        k=(dr+st)/2;
        nrd=nrdiv5(k);
        if(nrd == p)
        {
            if(k%10>5)
                k=k/10*10+5;
            else if(k%10<5)
                k=k/10*10;
            g<<k;
            break;
        }
        else
        if(nrd > p)
        {
            dr=k-1;
        }
        else
        {
            st=k+1;
        }
    }
    if(dr<st)
    {
        g<<-1;
    }
    return 0;
}

int nrdiv5(int nr)
{
    int pr=5,ex=0;
    while(pr<=nr)
    {
        ex+=nr/pr;
        pr*=5;
    }
    return ex;
}