您的位置:首页 > 其它

hdu 6108 小C的倍数问题(同余定理)

2017-08-13 10:52 281 查看
http://www.cnblogs.com/zzqc/p/6684794.html

转载至 

我们都知道对于十进制数,只要这个数能除尽3/9则他个位数字之和也能除尽3/9,以前只知道用没有证明过,下面来简单证明一下。

对于十进制数,举个简单的例子,这个数是abcd,他表示的大小就是 x=1000*a+100*b+10*c+d ,

我们对他进行转化 x=999*a+99*b+9*c+(a+b+c+d)

                              x=9(99*a+9b+c)+(a+b+c+d)

因为9一定能除尽3和9,所以对于x,只要(a+b+c+d)能除尽3和9,则x也能除尽3和9.

上面只是举了一个数,下面来针对任意进制P(P>2)证明,

假设一个n位的P进制数x是   anan-1an-2.......a3a2a1

则x=an*Pn-1+an-1*Pn-2+an-2*Pn-3+......+a3*P2+a2*P1+a1*P0.

类似于上面的操作,我们凑出来一个各位数之和,

x=(an*(Pn-1-1)+an-1*(Pn-2-1)+an-2*(Pn-3-1)+......+a3*(P2-1)+a2*(P1-1))+(a1+a2+a3+......an-2+an-1+an)

观察发现Pn-1=(Pn-1-1)*P+(P1-1)  (n>=2) 展开后发现所有的项都含有(P-1),也就是说Pn-1一定能除尽(P-1),所以也能除尽P-1的因子,

所以对于任意的(P-1)得因子q,只要各位数之和(a1+a2+......+an)能除尽q,那么x也能除尽q。

 

学习了同余方程后发现,也能用同余来解释,

例如 417≡4*10*10+1*10+7≡4*1*1+1*1+7≡4+1+7      (mod 3)

对于P进制数anan-1......a2a1≡an*P^n-1+an-1*P^n-2......+a2*P+a1  (mod B)

对于上面的式子显然,当P mod B为1的时候,上式就可化简为≡an*1*1...+an-1*1*1....+a2*1+a1  mod(B)

所以此时这个P进制数模B后的值就等于各位数字和模B后的值,前提是P%B=1-->(P-1)%B=0,也就是P-1的因子


小C的倍数问题

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 468    Accepted Submission(s): 268


Problem Description

根据小学数学的知识,我们知道一个正整数x是3的倍数的条件是x每一位加起来的和是3的倍数。反之,如果一个数每一位加起来是3的倍数,则这个数肯定是3的倍数。

现在给定进制P,求有多少个B满足P进制下,一个正整数是B的倍数的充分必要条件是每一位加起来的和是B的倍数。

 

Input

第一行一个正整数T表示数据组数(1<=T<=20)。

接下来T行,每行一个正整数P(2 < P < 1e9),表示一组询问。

 

Output

对于每组数据输出一行,每一行一个数表示答案。

 

Sample Input

1
10

 

Sample Output

3
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: