a(n, base = 3) = {
	my (r=[], nz=[]);
	while (n,
		if (n%base==0,
			r = concat(0, r);
			n\=base,

			my (s=0, p=1);
			while (n%base,
				s += p*(n%base);
				p *= base;
				n \= base;
			);
			r = concat(s, r);
			nz = concat(s, nz);
		);
	);
	my (j=0, v=0, p=1);
	forstep (i=#r, 1, -1,
		if (r[i],
			v += p*nz[j++];
			p *= base^#digits(nz[j], base),
			p *= base
		);
	);

	v
}

for (n=0, 3^logint(25 000, 3), print (n " " a(n)))

quit