Cod sursa(job #2592671)

Utilizator darkeagleDaniel Popescu darkeagle Data 2 aprilie 2020 01:09:20
Problema Factorial Scor 5
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <cstdio>
#define nmax 500000000
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 (st < dr) {

    if(factorial(mid) != p)

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

    }
    mid = (st+dr)/2;

 }
 if(factorial(mid) == p)
 fprintf(g,"%d",mid - mid%5);
 else
    fprintf(g,"-1");
 }


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