Cod sursa(job #2803160)
Utilizator | Data | 19 noiembrie 2021 16:42:17 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("fact.in");
ofstream out("fact.out");
int nrn(int n)
{
int nr=0;
while(n > 0)
{
nr = nr + n/5;
n = n/5;
}
return nr;
}
int bin(int p)
{
int st=1;
int dr=(1 << 30);
int a;
int k=-1;
while(st<=dr)
{
a=(st+dr)/2;
int b = nrn(a);
if(b<p)
st=a+1;
else if(b>=p)
{
dr=a-1;
if(b == p)
k = a;
}
}
return k;
}
int main()
{
int p;
in>>p;
out<<bin(p);
return 0;
}