Cod sursa(job #1575167)
| Utilizator | Data | 21 ianuarie 2016 10:38:08 | |
|---|---|---|---|
| Problema | Factorial | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <cstdio>
#define NMax 500000001
using namespace std;
int mijloc,stg,dr,p,copie;
int zerouri(int x)
{
int p=5,nr=0;
while(x/p)
{
nr+=x/p;
p=p*5;
}
return nr;
}
int main()
{
freopen("factorial.in","r",stdin);
freopen("factorial.out","w",stdout);
scanf("%d",&p);
stg=1;
dr=NMax;
while (stg<=dr)
{
mijloc=(stg+dr)/2;
if(zerouri(mijloc)<p)
stg=mijloc+1;
else
if(zerouri(mijloc)>=p)
{
if(zerouri(mijloc)==p)
copie=mijloc;
dr=mijloc-1;
}
}
printf("%d",copie);
return 0;
}
