Cod sursa(job #2806221)

Utilizator namesurname01Name Surname namesurname01 Data 22 noiembrie 2021 14:21:19
Problema Factorial Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.05 kb
#include<stdio.h>
using namespace std;
FILE* f, * g;
int v[18] = { 0,5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140725,1220703125 };
int main()
{
    long long p, s, d, mij, n = -1, nr0, i;
    f = fopen("fact.in", "r");
    g = fopen("fact.out", "w");
    fscanf(f, "%lld", &p);
    if (p != 0)
    {
        s = 1;
        d = p * 5;
        while (s <= d)
        {
            mij = (s + d) / 2;
            nr0 = 0;
            for (i = 1;v[i] <= mij;i++)
            {
                nr0 = nr0 + mij / v[i];
            }
            if (nr0 == p)
            {
                n = mij;
                d = mij - 1;
            }
            else
            {
                if (nr0 > p)
                {
                    d = mij - 1;
                }
                else
                {
                    s = mij + 1;
                }
            }
        }
        fprintf(g, "%lld", n);
    }
    else
    {
        fprintf(g, "1");
    }

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