Cod sursa(job #2592665)

Utilizator darkeagleDaniel Popescu darkeagle Data 2 aprilie 2020 01:00:49
Problema Factorial Scor 85
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <cstdio>
#define nmax 2000000000
FILE * f = fopen("fact.in", "r");
FILE * g = fopen("fact.out", "w");
using namespace std;
int p;
int factorial (int h) {
    int p = 1, h1, s = 0;
    h1 = h;
    while (p < h)
    {
        p = p * 5;
        s = s + h1/p;
    }
    return s;
}
int main()
{ int ok = 0, q = 0, i;
    fscanf(f,"%d",&p);

 int st, dr, mid, wq;
 wq = nmax;

 st = 1;
 dr = nmax;
 mid = (st + dr) / 2;
 if(p == 0)
    fprintf(g,"1");
 else
 {


 while (factorial(mid) != p) {

    if(factorial(mid) != p)

    {
        if (factorial(mid) < p)
            st = mid;
        else
            dr = mid;

    }
    mid = (st+dr)/2;

 }
 }
 fprintf(g,"%d",mid - mid%5);

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