big = 1 000 000
s = 0
S = []
unseen = 1
seen(v) = if (v < big, bittest(s, v), setsearch(S, v))
see(v) = if (v < big, s = bitor(s, 2^v), S = setunion(S, [v])); while (seen(unseen), unseen++)

{
	f = vector(141);	\\ A[n,1]
	g = vector(#f);		\\ A[1,k]
	i = 0;
	for (d = 1, #f,
		for (k = 1, d,
			n = d+1-k;

			if (k==1,
				\\ first term in this row
				f[n] = unseen;
			);
			if (n==1,
				\\ first term in this column
				g[k] = unseen;
			);

			l = lcm(f[n], g[k]);
			forstep (v = ceil(unseen/l)*l, oo, l,
				if (!seen(v),
					see(v);
					print (i++ " " v " " v/l);
					break;
				);
			);
		);
	);
}

quit