Pagini recente » Cod sursa (job #2688074) | Istoria paginii runda/oji20092010 | Clasament pu | Cod sursa (job #798437) | Cod sursa (job #844736)
Cod sursa(job #844736)
#include <cstdio>
#include <cstdlib>
#define N 100000000
using namespace std;
int put[200],nr[200],n;
void init()
{
put[0]=1;
nr[0]=0;
for(n=1;nr[n-1]<=N;n++)
{
nr[n]=put[n-1]+nr[n-1];
put[n]=put[n-1]*5;
}
}
int caut(int x)
{
for(int i=0;i<n;i++) if(nr[i]<=x && nr[i+1]>x) return i;
return -1;
}
int rez(int p)
{
int r=0,i;
while(p)
{
i=caut(p);
r=r+p/nr[i]*put[i];
p=p%nr[i];
}
return r;
}
int main()
{
freopen("fact.in","r",stdin);
freopen("fact.out","w",stdout);
int p,rezultat,i;
init();
scanf("%i", &p);
if(p==0)
{
printf("1\n");
}else
{
rezultat=rez(p);
if(rezultat==rez(p+1)) printf("-1\n");
else printf("%i\n", rezultat);
}
scanf("%i", &i);
return 0;
}