Cod sursa(job #1276036)

Utilizator fluture.godlikeGafton Mihnea Alexandru fluture.godlike Data 25 noiembrie 2014 21:41:22
Problema Factorial Scor 45
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#define inf 100000000;
int n, sum, st, dr, mij;
FILE *fin, *fout;
int main()
{
    int pt[15];
    pt[0] = 1;
    for(int i =1; i< 15; i++) pt[i] = pt[i-1]*5;
    fin = fopen("fact.in", "r");
    fout = fopen("fact.out", "w");
    fscanf(fin, "%d", &n);
    if(n == 0) fprintf(fout, "1\n");
    else
    {
        st = 1, dr = inf;
        mij = (st+dr)/2;
        for(;;mij = (dr+st)/2)
        {
                sum = 0;
                for(int i = 1;;i++)
                {
                        if(pt[i] >= mij) break;
                        sum+=mij/pt[i];
                }
                if(sum == n && mij%5 == 0) break;
                if(sum >= n) dr = mij;
                if(sum < n) st = mij;
        }
        fprintf(fout, "%d\n", mij);
    }
    fclose(fin);
    fclose(fout);
    return 0;
}