SP5451 ANARC09C - Not So Flat After All
题目描述
任何正整数 $v$ 都能表示为若干素数的幂的乘积形式,即 $v = p_1^{a1} \times p_2^{a2} \times \ldots \times p_n^{an}$,其中 $p_i$ 是素数,$a_i \ge 0$。例如:$24 = 2^3 \times 3^1$。
选取任意两个不同的素数 $p_1$ 和 $p_2$。可以想象一个二维平面,其中 $p_1$ 的幂次位于 x 轴,$p_2$ 的幂次位于 y 轴。于是,任何数写作 $p_1^{a1} \times p_2^{a2}$ 的形式时,就能在这个平面中的点 $(x, y) = (a1, a2)$ 处表示。右图展示了当 $p_1 = 3$ 和 $p_2 = 2$ 时的一些例子。
这种表示方式同样适用于 N 维空间,每个坐标轴分配一个唯一的素数。每个 N 维空间对应一个独特的素数集合,称为「空间标识集」或 $S$。$|S|$ 表示 $S$ 的基数,即对应的空间维数 N。
在这个 $|S|$ 维空间中,任何可以用 $S$ 中素数的幂的乘积形式表示的数都可以展示。下方的图中展示了 $N = 3$ 且 $S = \{2, 3, 7\}$ 的情况。显然,只要 $S_A \subset S_B$,在空间 A 中可以表示的数在空间 B 中也可以表示。
我们定义在一个给定的 N 维空间中,任意两点之间的距离为从一个点顺着坐标轴的网格线移动到另一个点的步长之和(即移动总是与某个坐标轴平行)。例如,下图中数字 168 和 882 之间的距离为 4。
给定两个正整数,编写程序找出能够同时表示这两个数的最小维度的空间,并计算这两个数在该空间中的距离。

输入格式
输入包含一个或多个测试用例。每个测试用例在一行中由两个正整数组成($0 < A, B < 1,000,000$ 且 $A \times B > 1$)。输入以 "0 0" 结束。
输出格式
对于每个测试用例,输出一行:
k. X:D
其中 k 是测试用例的编号(从 1 开始),X 是两个数能够同时表示的最小空间的维数,D 是这两个数在该空间中的距离。
说明/提示
- $0 < A, B < 1,000,000$
- $A \times B > 1$
**本翻译由 AI 自动生成**