Pagini recente » Borderou de evaluare (job #374915) | Rezultatele filtrării | Borderou de evaluare (job #3227288) | Rezultatele filtrării | Cod sursa (job #1210131)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int p;
int funt(long long int x)
{
int sol=0;
int po=5;
while(x/po>0)
{
sol+=x/po;
po*=5;
}
return sol;
}
void cautbin(int lo, int hi)
{
while(hi-lo>1)
{
long long int mid=lo+(hi-lo)/2;
if(funt(mid)<p) lo=mid;
else hi=mid;
}
if(hi==p*5) fout<<-1<<"\n";
else fout<<hi<<"\n";
}
int main()
{
fin>>p;
//caz particular
if(p==0) {fout<<1<<"\n";return 0;}
cautbin(-1,p*5);
}