Cod sursa(job #181295)
#include<stdio.h>
#include<math.h>
unsigned long p,s=0,a[13];
int b[12],ok=1;
void bord()
{
for(int i=2;i<=12;++i)
a[i]=5*a[i-1]+1;
}
int main()
{
unsigned long i;
FILE *f=fopen("fact.in","r");
FILE *g=fopen("fact.out","w");
fscanf(f,"%lu",&p);
fclose(f);
if (p!=0)
{
a[1]=1;
bord();
while (p)
{
for(i=12;(i>=1) && (a[i]>p);--i);
p-=a[i];
s+=pow(5,i);
++b[i];
}
for(i=1;(i<=11) && (ok==1);++i)
if (b[i]>=5) ok=0;
if (ok==1) fprintf(g,"%lu",s);
else fprintf(g,"-1");
}
else fprintf(g,"1");
return 0;
}