Cod sursa(job #2615938)
Utilizator | Sergiu Mihaila MSergiu_01 | Data | 15 mai 2020 21:07:01 |
---|---|---|---|
Problema | Factorial | Scor | 10 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <fstream>
#define nmax 1000000000
using namespace std;
ifstream fin("fact.in");
ofstream fout("fact.out");
int putere5(int n)
{
int i, c = 0;
for(i = 5; i < n; i *= 5)
c += n/i;
return c;
}
int main()
{
int p, st = 1, dr = nmax, m;
fin >> p;
while(st < dr)
{
m = (st + dr)/2;
if(putere5(m) < p)
st = m + 1;
else
dr = m - 1;
if(putere5(st) == p)
fout << st;
else
fout << -1;
}
return 0;
}