300958: CF180B. Divisibility Rules
Memory Limit:256 MB
Time Limit:1 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Divisibility Rules
题意翻译
### 题意 对于判断一个数$A$ 是否是另一个数$B$ 的倍数,根据$B$ 的特殊性,我们有一些比较简单的方法。 例如十进制下,判断一个数是否是$2,5,4,8,10$ 等数的倍数,我们只需要判断这个数的最后几位是否是它们的倍数即可,我们称这种判断方法为$2-type$ 判断一个数是否是$3,9$ 的倍数,我们只需要判断这个数的各位数字和是否是它们的倍数即可,这种方法叫$3-type$ 而判断一个数是否是$11$ 的倍数,可以判断这个数的奇偶位数字和的差是否是$11$ 的倍数,这种方法叫$11-type$ 判断$6$ 的倍数,只需判断是否同时满足$2-type$ 和$3-type$ ;判断$22$ 的倍数,只需判断是否同时满足$2-type$ 和$11-type$ 。这种使用上述方法的组合的判断方式被称为$6-type$ 然而有一些数,比如$7,13,19$ 等,不能上面的方法判断,称之为$7-type$ ### 输入 给定$2≤b,d≤100$ ,表示在$b$ 进制下判断$d$ 满足哪种方法 ### 输出 输出$d$ 满足的方法,如果是$2-type$ ,再额外输出一行表示需要判断的位数 Translated by @C20191629题目描述
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 $ .输入输出格式
输入格式
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.
输出格式
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.
输入输出样例
输入样例 #1
10 10
输出样例 #1
2-type
1
输入样例 #2
2 3
输出样例 #2
11-type