Cod sursa(job #1008306)
Utilizator | Ionita Bogdan Constantin bodyionita | Data | 10 octombrie 2013 20:18:15 |
---|---|---|---|
Problema | Factorial | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.55 kb |
#include <cstdio>
using namespace std;
int p,nr,st,dr,mid;
inline int zerouri(int x)
{
long long pt=5;
int sum=0;
while (pt<=x)
{
sum+=x/pt;
pt*=5;
}
return sum;
}
int main()
{
freopen("factorial.in","r",stdin);
freopen("factorial.out","w",stdout);
scanf("%d",&p);
st=1;dr=5*p;
while (st<=dr)
{
mid=(st+dr)/2;
nr=zerouri(mid);
if (nr>=p) dr=mid-1; else st=mid+1;
}
if (zerouri(st)==p) printf("%d\n",st); else printf("-1\n");
return 0;
}