Cod sursa(job #1043710)

Utilizator LizzardStanbeca Theodor-Ionut Lizzard Data 28 noiembrie 2013 21:36:23
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
using namespace std;

ifstream fin ("fact.in");
ofstream fout ("fact.out");

int cb(int ,int ,int );
int nz(int x);

int main()
{
    int n,p,x;
    fin>>p;
    if(p==0)
    {
        fout<<1;
        return 0;
    }
    n=2147483647;
    x=cb(0,n,p);
    if(x==-1)   fout<<x;
    else
    {
        x-=x%5;
        fout<<x;
    }

    return 0;
}

int cb(int li,int ls,int p)
{
    if(li==ls)  return -1;
    int m=(li+ls)/2,t=nz(m);

    if(t<p) return cb(m+1,ls,p);
    if(t>p) return cb(li,m-1,p);
    return m;
}

int nz(int x)
{
    int i,r;
    for(i=5,r=0; i<=x; i*=5)
        r+=x/i;
    return r;
}