CF180B Divisibility Rules

题目描述

Vasya 在学校学习了整除规则。以下是其中的一些规则: - 被 $2$ 整除。当且仅当一个数的最后一位数字能被 $2$ 整除,或者换句话说,该数字是偶数时,这个数能被 $2$ 整除。 - 被 $3$ 整除。当且仅当一个数的各位数字之和可以被 $3$ 整除时,这个数能被 $3$ 整除。 - 被 $4$ 整除。当且仅当一个数最后两位所组成的数能被 $4$ 整除时,这个数能被 $4$ 整除。 - 被 $5$ 整除。当且仅当一个数的最后一位等于 $5$ 或 $0$ 时,这个数能被 $5$ 整除。 - 被 $6$ 整除。当且仅当一个数能同时被 $2$ 和 $3$ 整除时(即最后一位是偶数且各位数字之和可以被 $3$ 整除),这个数能被 $6$ 整除。 - 被 $7$ 整除。Vasya 不知道这种整除规则。 - 被 $8$ 整除。当且仅当一个数的最后三位组成的数能被 $8$ 整除时,这个数能被 $8$ 整除。 - 被 $9$ 整除。当且仅当一个数的各位数字之和可以被 $9$ 整除时,这个数能被 $9$ 整除。 - 被 $10$ 整除。当且仅当一个数的最后一位是零时,这个数能被 $10$ 整除。 - 被 $11$ 整除。当且仅当一个数奇数位数字之和和偶数位数字之和,两者相等或者相差可以被 $11$ 整除时,这个数能被 $11$ 整除。 Vasya 对某些整除规则的相似性感到好奇。实际上,对于判断一个数是否能被 $2$、$4$、$5$、$8$ 和 $10$ 整除,只需要检查其一位或多位末尾数字满足某些条件即可。Vasya 将这样的规则称为 $2$ 类规则。 如果检查整除性的方法是求数字之和并判断其是否能被给定的数整除,Vasya 将此规则称为 $3$ 类规则(适用于 $3$ 和 $9$)。 如果需要求出奇数位和偶数位数字之和的差,并判断该差是否能被给定的数整除,这种规则被称为 $11$ 类规则(适用于 $11$)。 在有些情况下,需要把给定的除数分解成几个因子,并分别检查不同类型($2$ 类、$3$ 类或 $11$ 类)的规则。例如,对于 $6$,需要同时检查 $2$ 类和 $3$ 类规则;对于 $66$,需要同时检查所有三种类型。此类混合整除规则称为 $6$ 类规则。 最后,对于某些数,上述规则都无法适用:既不能用 $2$ 类、也不能用 $3$ 类、$11$ 类或 $6$ 类规则。最小的此类数为 $7$,我们称这种情况适用 Vasya 尚未发现的神秘的 $7$ 类规则。 Vasya 的梦想是为所有可能的数字找到整除规则。他甚至不满足于只关注十进制系统。由于数字过多,他无法独自完成。Vasya 请你编写一个程序,给定进制 $b$ 和除数 $d$,判断在 $b$ 进制下,除数 $d$ 属于哪种整除规则类型。

输入格式

输入包含一行,包括两个整数 $b$ 和 $d$($2 \leq b, d \leq 100$)——表示进制和除数。这两个数均以十进制给出。

输出格式

输出一行,表示在 $b$ 进制下,除数 $d$ 属于哪种整除规则类型: "2-type"、"3-type"、"11-type"、"6-type" 或 "7-type"。如果同时属于多种类型,请输出在上述顺序中最前的那种类型。如果某个数属于 $2$ 类规则,请在第二行输出需要检查的最少末尾 $b$ 进制位数。

说明/提示

在二进制下,$3$ 的整除规则如下:“当且仅当该数各位数字中偶数位之和与奇数位之和的差能被 $3$ 整除时,该数能被 $3$ 整除。” 这属于 $11$ 类规则。例如 $21_{10} = 10101_2$。对它来说,奇数位上数字之和为 $1 + 1 + 1 = 3$,偶数位为 $0 + 0 = 0$。规则成立,该数可被 $3$ 整除。 在有些进制下,某些数既适合 $3$ 类规则也适合 $11$ 类规则。此时,正确答案为 "3-type"。 由 ChatGPT 5 翻译