Pagini recente » Cod sursa (job #2267366) | Cod sursa (job #215969) | Cod sursa (job #1258796) | Cod sursa (job #2363875) | Cod sursa (job #2785447)
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int fact(int n)
{
int c=0, p=5;
while(p<=n)
{
c+=n/p;
p*=5;
}
return c;
}
int cautare_binara(int st, int dr, int p)
{
if(st>dr)
return -1;
else
{
int m=(st+dr)/2;
int x=fact(m);
if(x==p)
return m;
if(x<p)
return cautare_binara(m+1, dr, p);
else if(x>p)
return cautare_binara(st, m-1, p);
}
}
int main()
{
int p, st=1, dr=2000000000;
fin>>p;
int t=cautare_binara(st, dr, p);
if(p==0)
fout<<1;
else if(t==-1)
fout<<t;
else
fout<<t-t%5;
}