Pagini recente » Cod sursa (job #2523683) | Cod sursa (job #1068768) | Cod sursa (job #3140662) | Cod sursa (job #1858958) | Cod sursa (job #1496383)
#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;
}
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;
}