CF180B.Divisibility Rules

提高+/省选-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Vasya studies divisibility rules at school. Here are some of them:

  • Divisibility by 2. A number is divisible by 2 if and only if its last digit is divisible by 2 or in other words, is even.
  • Divisibility by 3. A number is divisible by 3 if and only if the sum of its digits is divisible by 3.
  • Divisibility by 4. A number is divisible by 4 if and only if its last two digits form a number that is divisible by 4.
  • Divisibility by 5. A number is divisible by 5 if and only if its last digit equals 5 or 0.
  • Divisibility by 6. A number is divisible by 6 if and only if it is divisible by 2 and 3 simultaneously (that is, if the last digit is even and the sum of all digits is divisible by 3).
  • Divisibility by 7. Vasya doesn't know such divisibility rule.
  • Divisibility by 8. A number is divisible by 8 if and only if its last three digits form a number that is divisible by 8.
  • Divisibility by 9. A number is divisible by 9 if and only if the sum of its digits is divisible by 9.
  • Divisibility by 10. A number is divisible by 10 if and only if its last digit is a zero.
  • Divisibility by 11. A number is divisible by 11 if and only if the sum of digits on its odd positions either equals to the sum of digits on the even positions, or they differ in a number that is divisible by 11.

Vasya got interested by the fact that some divisibility rules resemble each other. In fact, to check a number's divisibility by 2, 4, 5, 8 and 10 it is enough to check fulfiling some condition for one or several last digits. Vasya calls such rules the 2-type rules.

If checking divisibility means finding a sum of digits and checking whether the sum is divisible by the given number, then Vasya calls this rule the 3-type rule (because it works for numbers 3 and 9).

If we need to find the difference between the sum of digits on odd and even positions and check whether the difference is divisible by the given divisor, this rule is called the 11-type rule (it works for number 11).

In some cases we should divide the divisor into several factors and check whether rules of different types (2-type, 3-type or 11-type) work there. For example, for number 6 we check 2-type and 3-type rules, for number 66 we check all three types. Such mixed divisibility rules are called 6-type rules.

And finally, there are some numbers for which no rule works: neither 2-type, nor 3-type, nor 11-type, nor 6-type. The least such number is number 7, so we'll say that in such cases the mysterious 7-type rule works, the one that Vasya hasn't discovered yet.

Vasya's dream is finding divisibility rules for all possible numbers. He isn't going to stop on the decimal numbers only. As there are quite many numbers, ha can't do it all by himself. Vasya asked you to write a program that determines the divisibility rule type in the b-based notation for the given divisor d.

瓦西娅在学校学习整除规则。以下是一些常见的整除规则:

  • 被 2 整除:一个数能被 2 整除,当且仅当它的末位数字能被 2 整除,即末位是偶数。
  • 被 3 整除:一个数能被 3 整除,当且仅当它的各位数字之和能被 3 整除。
  • 被 4 整除:一个数能被 4 整除,当且仅当它的末两位组成的数能被 4 整除。
  • 被 5 整除:一个数能被 5 整除,当且仅当它的末位数字是 5 或 0。
  • 被 6 整除:一个数能被 6 整除,当且仅当它同时被 2 和 3 整除(即末位为偶数,且各位数字之和能被 3 整除)。
  • 被 7 整除:瓦西娅还不知道这样的整除规则。
  • 被 8 整除:一个数能被 8 整除,当且仅当它的末三位组成的数能被 8 整除。
  • 被 9 整除:一个数能被 9 整除,当且仅当它的各位数字之和能被 9 整除。
  • 被 10 整除:一个数能被 10 整除,当且仅当它的末位数字是 0。
  • 被 11 整除:一个数能被 11 整除,当且仅当其奇数位上的数字之和与偶数位上的数字之和相等,或二者之差能被 11 整除。

瓦西娅注意到,某些整除规则彼此相似。事实上,要检验一个数能否被 2、4、5、8 和 10 整除,只需检查其一个或若干个末位数字是否满足某种条件即可。瓦西娅将这类规则称为 2-型规则。

如果整除性检验是通过计算各位数字之和,并检验该和能否被给定的除数整除来实现的,则瓦西娅称此规则为 3-型规则(因为该规则适用于 3 和 9)。

如果需要计算奇数位数字之和与偶数位数字之和的差,并检验该差能否被给定的除数整除,则该规则称为 11-型规则(因为它适用于 11)。

在某些情况下,我们需要将除数分解为若干因子,并分别检验不同类型的规则(2-型、3-型或 11-型)是否成立。例如,对数字 6,我们需同时检验 2-型和 3-型规则;对数字 66,则需检验全部三种类型。这类混合整除规则被称为 6-型规则。

最后,还存在一些数,对它们而言没有任何上述类型的规则适用:既非 2-型、也非 3-型、亦非 11-型或 6-型。最小的这样的数是 7,因此我们将这种情形下所适用的、瓦西娅尚未发现的神秘规则称为 7-型规则。

瓦西娅的梦想是为所有可能的数找到整除规则。他并不局限于十进制数。由于待研究的数非常多,他无法独自完成全部工作。因此,瓦西娅请你编写一个程序,用于判定:在以 bb 为底的进制表示下,对给定的除数 dd,其整除规则属于哪一类型。

输入格式

The first input line contains two integers b and d (2 ≤ b, d ≤ 100) — the notation system base and the divisor. Both numbers are given in the decimal notation.

第一行输入包含两个整数 bb 和 dd(2 ≤ b, d ≤ 1002 \le b, d \le 100)——分别为进制系统的底数和除数。这两个数均以十进制给出。

输出格式

On the first output line print the type of the rule in the b-based notation system, where the divisor is d: "2-type", "3-type", "11-type", "6-type" or "7-type". If there are several such types, print the one that goes earlier in the given sequence. If a number belongs to the 2-type, print on the second line the least number of the last b-based digits that we will need to use to check the divisibility.

在第一行输出中,以 b 进制记数法表示该规则的类型(除数为 d):“2-type”、“3-type”、“11-type”、“6-type” 或 “7-type”。若存在多种此类类型,则输出在给定序列中靠前的那个。若该数属于 2-type,则在第二行输出为检验整除性所需使用的最少末尾 b 进制数字个数。

输入输出样例

  • 输入#1

    10 10

    输出#1

    2-type
    1
  • 输入#2

    2 3

    输出#2

    11-type

说明/提示

The divisibility rule for number 3 in binary notation looks as follows: "A number is divisible by 3 if and only if the sum of its digits that occupy the even places differs from the sum of digits that occupy the odd places, in a number that is divisible by 3". That's an 11-type rule. For example, 2110 = 101012. For it the sum of digits on odd positions equals 1 + 1 + 1 = 3, an on even positions — 0 + 0 = 0. The rule works and the number is divisible by 3.

In some notations a number can fit into the 3-type rule and the 11-type rule. In this case the correct answer is "3-type".

数字3在二进制表示下的整除规则如下:“一个数能被3整除,当且仅当其位于偶数位(从右往左,最低位为第1位)上的数字之和与位于奇数位上的数字之和的差能被3整除”。这是一条“11型”规则。例如,2110=10101221_{10} = 10101_2。对该数而言,奇数位(第1、3、5位)上的数字之和为 1+1+1=31 + 1 + 1 = 3,偶数位(第2、4位)上的数字之和为 0+0=00 + 0 = 0。该规则成立,且该数确实能被3整除。

在某些进制表示下,一个数可能同时满足“3型”规则和“11型”规则。此时,正确答案为“3型”。

输入解题思路,AI测评打分。不知道怎么写?

首页