Cod sursa(job #661923)
| Utilizator | Data | 15 ianuarie 2012 15:37:46 | |
|---|---|---|---|
| Problema | Factorial | Scor | 95 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include<stdio.h>
using namespace std;
int i,p,u,nr,m,pi;
int nrzer(int n)
{
int p1=1;
int s=0;
for(i=1;i<=30;i++)
{
p1=p1*5;
if(p1>n) break;
s=s+n/p1;
}
return s;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&pi);
p=1;
u=5*pi+5;
while(p<=u)
{
m=(p+u)/2;
nr=nrzer(m);
if(nr>pi) u=m-1;
else
if(nr<pi) p=m+1;
else break;
}
if(p<=u) printf("%d",m-m%5);
else printf("-1");
return 0;
}
