Cod sursa(job #474508)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 3 august 2010 23:16:48
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
using namespace std;

#define LIM 2000000000

int p, i, aux;
int st, dr, mijl;
int rez, nr = -1;

int descompunere (long long x)
{
    int suma = 0, put = 5;
    while (x / put > 0)
    {
        suma += (x / put);
        put *= 5;
    }

    return suma;
}

int main ()
{
    FILE *f = fopen ("fact.in","r");
    FILE *g = fopen ("fact.out","w");
    fscanf (f,"%d", &p);

    st = 1;
    dr = LIM;
    while (st <= dr)
    {
        mijl = (st + dr) / 2;

        rez = descompunere (mijl);
        if (rez == p)
        {
            nr = mijl;
            dr = mijl - 1;
        }
        else if (rez < p)
            st = mijl + 1;
        else
            dr = mijl - 1;
    }

    fprintf (g, "%d", nr);

    fclose (g);
    fclose (f);
    return 0;
}