Cod sursa(job #1803639)
| Utilizator | Data | 11 noiembrie 2016 17:25:37 | |
|---|---|---|---|
| Problema | Factorial | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.82 kb |
#include <cstdio>
#include <cstdlib>
using namespace std;
int cif5(int n)
{
int r=5,s=0;
while(r<=n)
{
s+=n/r;
r*=5;
}
return s;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p;
scanf("%d",&p);
if(p!=0)
{
char f=0;
int st, dr;
st=1;
dr=500000000;
while(st<dr)
{
int m=(st+dr)/2;
if(cif5(m)==p)
f=1, dr=m;
else
{
if(cif5(m)>p)
dr=m-1;
else
st=m+1;
}
}
if(f!=0)
printf("%d", st);
else
printf("-1");
}
else
printf("1");
return 0;
}
