Cod sursa(job #1496389)

Utilizator vlcmodanModan Valentin vlcmodan Data 4 octombrie 2015 21:12:38
Problema Factorial Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include<stdio.h>
using namespace std;
#define N 10000000000
unsigned long long aux,medie,p;
unsigned long long nr(unsigned long long a)
{
   unsigned long long s=0,x=5;
    while(a>=x)
    {
        s+=a/x;
        x*=5;
    }

    return s;
}
int minim(int a,int b)
{
    return a<b?a:b;
}
unsigned long long cautare_binara(unsigned long long minim,unsigned long long maxim,int p)
{
    if(p==0)
        return 1;

    aux=nr((minim+maxim)/2);
    if(aux==p)
    {
        aux=(minim+maxim)/2;
        aux=aux-aux%5;

    return aux;
    }
    if(minim>=maxim)
        return -1;
    medie=(minim+maxim)/2;
    if(aux>p)
        return cautare_binara(minim,medie-1,p);
    if(aux<p)
        return cautare_binara(medie+1,maxim,p);

}
int main()
{
    freopen("fact.in","r",stdin);
    freopen("fact.out","w",stdout);
    scanf("%d",&p);
    medie=cautare_binara(1,N,p);
    printf("%d\n",medie);

    return 0;
}