Cod sursa(job #768048)

Utilizator PopdanDanielPopdan Daniel PopdanDaniel Data 15 iulie 2012 20:20:37
Problema Factorial Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>
#include <stdlib.h>
int nr_zero(int n)
    {
        int rez=0,k=5;
        while(k<=n)
            {
                rez+=n/k;
                k=k*5;
            }
        return rez;
    }
int cautare_binara(int p)
    {
        int i=1,rez,k,a=4*p,b=5*p;
        k=nr_zero(b);
        while(k!=p)
        {

            if(k<p)
            {
            a=(a+b)/2; i=0;
            k=nr_zero(a);
            }
            else
            {
            b=(a+b)/2;
            k=nr_zero(b);
            i=1;
            }
            printf("%d %d %d %d\n",a,b,k,p); getch();
            if((b-a)==1)
            return -1;

        }
    if(i==1)
    rez=div_5(b);
    else
    rez=div_5(a);
    return rez;
    }
int div_5(int n)
    {
        while((n%5)!=0)
        n--;
        return n;
    }
int main()
{
    int p,rez;
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%d", &p);
    if(p==0)
    rez=1;
    else
    rez=cautare_binara(p);
    printf("%d", rez);
    return 0;
}