Cod sursa(job #390422)
| Utilizator | Data | 3 februarie 2010 18:47:45 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.4 kb |
#include<stdio.h>
int zero(int n)
{
int r=0;
while(n)
{
r+= n/5;
n/=5;
}
return r;
}
int cautbin(int p)
{
int i,pas=1<<30;
for(i=0;pas;pas>>=1)
if (zero(i+pas)<p)
i+=pas;
if (zero(i+1)!=p) return -1;
return 1+i;
}
int main()
{
int p;
freopen("fact1.in","r",stdin);
freopen("fact1.out","w",stdout);
scanf("%d",&p);
printf("%d",cautbin(p));
return 0;
}