Cod sursa(job #2194765)
Utilizator | Data | 14 aprilie 2018 12:53:39 | |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.43 kb |
#include <iostream>
using namespace std;
int nz(int x)
{
int ans = 0, p5=5;
while(x>=p5)
{
ans=ans+(x/p5);
p5*=5;
}
return ans;
}
int main() {
int p;
in>>p;
int st = 1, dr = 5*p;
while(st<=dr)
{
int mijl = (st+dr)/2;
if(nz(mijl)<p) st = mijl+1;
else dr = mijl-1;
}
if(nz(st) == p) out<<st;
else out<<"-1";
return 0;
}