Cod sursa(job #1673281)
Utilizator | Bogdan Marin bogdanmarin69 | Data | 3 aprilie 2016 16:55:24 |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.53 kb |
#include <fstream>
using namespace std;
ifstream cin("fact.in");
ofstream cout("fact.out");
int nz(int x)
{
int p5 = 5, ans = 0;
while(p5<=x)
{
ans = ans + x/p5;
p5 = p5 * 5;
}
return ans;
}
int main()
{
int p;
cin>>p;
int st = 1, dr = 5*p;
while(st<=dr){
int mid = (st+dr)/2;
if(nz(mid)<p)
st = mid + 1;
else
dr = mid - 1;
}
if(nz(st)==p)
cout<<st;
else
cout<<-1;
return 0;
}