Nu aveti permisiuni pentru a descarca fisierul grader_test8.in
Cod sursa(job #429041)
| Utilizator | Data | 29 martie 2010 19:51:32 | |
|---|---|---|---|
| Problema | Factorial | Scor | 60 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.54 kb |
#include<stdio.h>
#include<values.h>
#include<math.h>
using namespace std;
int nr_zero (int k)
{
long long sum=0;
int exp=1;
while (pow(5,exp)<=k)
{
sum+=k/pow(5,exp);
exp++;
}
return sum;
}
int main ()
{
int st,dr,p,m;
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
scanf("%d",&p);
st=1; dr=500000000;
while (st<=dr)
{
m=st+(dr-st)/2;
if (nr_zero(m)>=p)
dr=m-1;
else st=m+1;
}
if (p==0) printf("1");
else if (nr_zero(m)==p) printf("%d",m);
else printf("-1");
return 0;
}
