#P3993. Not So Flat After All

Not So Flat After All

题目描述:

任何一个正整数vv都可以表示为$v = p_1^{a_1} \times p_2^{a_2} \times \dots \times p_n^{a_n}$,其中pip_i是质数,且ai0a_i \geq 0。例如:24=23×3124 = 2^3 \times 3^1

选择任意两个质数p1p_1p2p_2p1p2p_1 \neq p_2)。想象一个二维平面,其中xx轴表示p1p_1的幂,yy轴表示p2p_2的幂。那么任何可以表示为p1a1×p2a2p_1^{a_1} \times p_2^{a_2}的数都可以在这个平面上表示为点(x,y)=(a1,a2)(x, y) = (a_1, a_2)。右边的图展示了一些例子,其中p1=3p_1 = 3p2=2p_2 = 2 这个概念可以推广到任意NN维空间,其中每个维度对应一个唯一的质数。每个NN维空间都有一个唯一的质数集合,我们称这个集合为“空间标识集”(Space Identification Set),简称SSS|S|(即SS的大小)就是NN

任何可以表示为SS中质数的乘积(每个质数的幂次ai0a_i \geq 0)的数都可以在这个S|S|维空间中表示。下图展示了N=3N = 3S={2,3,7}S = \{2, 3, 7\}的例子。显然,任何可以在空间AA中表示的数也可以在空间BB中表示,只要SASBS_A \subseteq S_B

我们定义空间中任意两点之间的距离为从一个点到另一个点沿网格线移动所需经过的单位距离之和(即移动方向始终平行于某一坐标轴)。例如,在下图中,168168882882之间的距离是44

给定两个正整数,编写一个程序,确定一个最小的空间维度XX,使得这两个数都可以在该空间中表示,并计算它们在该空间中的距离DD

输入:

程序将在一个或多个测试用例上进行测试。每个测试用例由一行两个正整数组成(0<A,B<1,000,0000 < A, B < 1,000,000,且A×B>1A \times B > 1)。最后一行是两个00 输出:

对于每个测试用例,输出以下内容:

k. X:D

其中kk是测试用例编号(从1开始),XX是能够表示AABB的最小空间维度,DD是这两个点在该空间中的距离。

示例输入:

168 882
770 792
0 0

示例输出:

1. 3:4
2. 5:6