\\ returns k such that n is the k-th zeroless number in base b
K(b, n) = {
	my (d = digits(n, b));
	sum(w = 0, #d-1, (b-1)^w)
	+ if (b > 2, fromdigits(apply (t -> t-1, d), b-1), 0);
}

a(n, b = 3) = {
	my (v = 1, pi = 1, d);
	while (n,
		if (n % b,
			my (nz = 0, p = 1);
			while (n % b,
				nz += (n % b) * p;
				n \= b;
				p *= b;
			);
			v *= prime(pi) ^ K(b, nz);

			,

			n /= b;
			pi++;
		);
	);
	return (v);
}

{
	for (n = 0, 10 000,
		print (n " " a(n))
	)
}

quit