Pagini recente » Monitorul de evaluare | Bratara | Paranteze2 | Diferente pentru utilizator/djok intre reviziile 141 si 113 | Cod sursa (job #602968)
Cod sursa(job #602968)
#include<iostream>
#include<fstream>
using namespace std;
int main(void)
{
long long p;
fstream f,g;
f.open("fact.in",ios::in);
f>>p;
long long mij,dr,st;
dr=p*5+1;
st=p;
int gasit=0;
long long min=500000001;
while (st<=dr && (gasit==3 || gasit==0))
{
mij=(st+dr)/2;
long long k=5;
long long zero=0;
while (mij/k>=1)
{
zero=mij/k+zero;
k=k*5;
}
if (zero==p)
{
if (mij<min)
min=mij;
dr--;
gasit=3;
/*break;*/
}
else
if (zero<p)
st=mij;
else
dr=mij;
if (st==mij && dr==mij+1)
{break;}
}
g.open("fact.out",ios::out);
if (gasit==3)
g<<min;
else
g<<-1;
f.close();
g.close();
}