Pagini recente » Borderou de evaluare (job #1667881) | Borderou de evaluare (job #1807515) | Borderou de evaluare (job #1065443) | Borderou de evaluare (job #694077) | Cod sursa (job #2501763)
#include <fstream>
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
const long long NMAX = 1000000000;
long long legendre(long long n)
{
long long numitor = 5;//nr prim
long long p = 0; //putere
while(numitor <=n)
{
p = p + n/numitor;
numitor = numitor*5;
}
return p;
}
int main()
{
long long st = 1, dr = NMAX, solutie = -1, n, p, mid;
fin>>p;
while(st<=dr)
{
mid = (st + dr) >>1;
n = legendre(mid);
if(n == p)
{
solutie = mid;
dr = mid - 1;
continue;
}
if(n < p)
st = mid + 1;
else
dr = mid - 1;
}
fout<<solutie<<"\n";
return 0;
}