Cod sursa(job #1167148)

Utilizator explodicusDan Gutu explodicus Data 4 aprilie 2014 14:38:21
Problema Factorial Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int check (int n)
{
    int p=5;
    int rez=0,r=1;
    while (r)
    {
        r=n / p;
        p=p*5;
        rez+=r;
    }
    return rez;
}

int main()
{
    int n;
    FILE *f = fopen("fact.in","r");
    FILE *g = fopen("fact.out","w");
    fscanf(f, "%d", &n );
    int l=1;
    int r =100000000;
    int rez=-1;
    while (l<r)
    {
        int m = (l+r)/2;
        if (check(m)>n)
            r = m-1;
        else if (check(m)<n)
            l = m+1;
        else
        {
            r=m;
        }
    }
    if (check(r)==n) rez=l;
    fprintf(g,"%d\n",rez);
    return 0;
}