Pagini recente » Monitorul de evaluare | Cod sursa (job #525916) | Cod sursa (job #1739102) | Cod sursa (job #326010) | Cod sursa (job #1496380)
#include <iostream>
#include<stdio.h>
using namespace std;
#define N 5000000000
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;
}
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;
}