十进制数和二进制数整除规律

前言

注:以下提到的数如不加说明均为非负整数

你小学的时候就知道,一个数能被2整除的充要条件是它的个位数为偶数,能被3整除的充要条件是它的各位数之和能被3整除。个位数为偶数的数能被2整除很显然,但你肯定好奇过为什么各位数之和能被3整除的数就能被3整除?这个神奇的结论是怎么得到的?各位数之和能被别的数整除的数怎么就不一定能被这个数整除?别的数的整除又有什么规律?看完后面的分析你就恍然大悟啦,其实各位数之和能被3整除的数就能被3整除这个规律纯属巧合(因为10的任意非负整数次幂模3的结果均为1),然后你会惊奇地发现能被9整除的结论跟这个是一样的。

一个 n n n k k k进制数 ( a n − 1 a n − 2 ⋯ a 2 a 1 a 0 ) k (a_{n-1}a_{n-2}\cdots a_2a_1a_0)_k (an1an2a2a1a0)k可表示为 n n n n − 1 n-1 n1次多项式: ∑ i = 0 n − 1 a i k i \sum_{i=0}^{n-1}a_ik^i i=0n1aiki若该数能被 x x x整除,即 ⟮ ∑ i = 0 n − 1 a i k i ⟯ % x = 0 \lgroup\sum_{i=0}^{n-1}a_ik^i\rgroup\%x=0 i=0n1aiki%x=0成立,则 ⟮ ∑ i = 0 n − 1 a i ( k i % x ) ⟯ % x = 0 \lgroup\sum_{i=0}^{n-1}a_i(k^i\%x)\rgroup\%x=0 i=0n1ai(ki%x)%x=0成立。由此可得出一般规律:一个 n n n k k k进制数能被 x x x整除的充要条件为它的各位数与各自的权模 x x x的乘积之和能被 x x x整除。

十进制

设一个十进制数 n n n f i ( x ) = 1 0 i % x f_i(x)=10^i\%x fi(x)=10i%x S x = { f i ( x ) ∣ i = 0 , 1 , 2 , ⋯   , n − 1 } S_x=\{f_i(x)|i=0,1,2,\cdots,n-1\} Sx={fi(x)i=0,1,2,,n1} S x S_x Sx为有序集。

以下列举 x = 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 x=2,3,4,5,6,7,8,9 x=2,3,4,5,6,7,8,9的情况:

x = 2 x=2 x=2时, S x = { 1 , 0 , 0 , 0 , ⋯   } S_x=\{1,0,0,0,\cdots\} Sx={1,0,0,0,},则 n % 2 = 0    ⟺    a 0 % 2 = 0 n\%2=0\iff a_0\%2=0 n%2=0a0%2=0即个位数能被2整除,也即个位数为0,2,4,6或8;

x = 3 x=3 x=3时, S x = { 1 , 1 , 1 , 1 , ⋯   } S_x=\{1,1,1,1,\cdots\} Sx={1,1,1,1,},则
n % 3 = 0    ⟺    ⟮ ∑ i = 0 n − 1 a i ⟯ % 3 = 0 n\%3=0\iff\lgroup\sum_{i=0}^{n-1}a_i\rgroup\%3=0 n%3=0i=0n1ai%3=0即各位数之和能被3整除;

x = 4 x=4 x=4时, S x = { 1 , 2 , 0 , 0 , ⋯   } S_x=\{1,2,0,0,\cdots\} Sx={1,2,0,0,},则
n % 4 = 0    ⟺    ( a 0 + 2 a 1 ) % 4 = 0 n\%4=0\iff (a_0+2a_1)\%4=0 n%4=0(a0+2a1)%4=0即个位数加上十位数的2倍,结果能被4整除;

x = 5 x=5 x=5时, S x = { 1 , 0 , 0 , 0 , ⋯   } S_x=\{1,0,0,0,\cdots\} Sx={1,0,0,0,},则
n % 5 = 0    ⟺    a 0 % 5 = 0 n\%5=0\iff a_0\%5=0 n%5=0a0%5=0即个位数能被5整除,也即个位数为0或5;

x = 6 x=6 x=6时, S x = { 1 , 4 , 4 , 4 , ⋯   } S_x=\{1,4,4,4,\cdots\} Sx={1,4,4,4,},则
n % 6 = 0    ⟺    ⟮ a 0 + 4 ∑ i = 1 n − 1 a i ⟯ % 6 = 0 n\%6=0\iff\lgroup a_0+4\sum_{i=1}^{n-1}a_i\rgroup\%6=0 n%6=0a0+4i=1n1ai%6=0即个位数加上除个位数外其他位数之和的4倍,结果能被6整除;

x = 7 x=7 x=7时, S x = { 1 , 3 , 2 , 6 , 4 , 5 , 1 , 3 , 2 , 6 , 4 , 5 , ⋯   } S_x=\{1,3,2,6,4,5,1,3,2,6,4,5,\cdots\} Sx={1,3,2,6,4,5,1,3,2,6,4,5,},则
n % 7 = 0    ⟺    ⟮ ∑ i = 0 [ ( n − 1 ) / 6 ] ( a 6 i + 3 a 6 i + 1 + 2 a 6 i + 2 + 6 a 6 i + 3 + 4 a 6 i + 4 + 5 a 6 i + 5 ) ⟯ % 7 = 0 n\%7=0\iff\lgroup\sum_{i=0}^{[(n-1)/6]}(a_{6i}+3a_{6i+1}+2a_{6i+2}+6a_{6i+3}+4a_{6i+4}+5a_{6i+5})\rgroup\%7=0 n%7=0i=0[(n1)/6](a6i+3a6i+1+2a6i+2+6a6i+3+4a6i+4+5a6i+5)%7=0

x = 8 x=8 x=8时, S x = { 1 , 2 , 4 , 0 , 0 , 0 , ⋯   } S_x=\{1,2,4,0,0,0,\cdots\} Sx={1,2,4,0,0,0,},则
n % 8 = 0    ⟺    ( a 0 + 2 a 1 + 4 a 2 ) % 8 = 0 n\%8=0\iff(a_0+2a_1+4a_2)\%8=0 n%8=0(a0+2a1+4a2)%8=0即个位数加上十位数的2倍再加上百位数的4倍,结果能被8整除;

x = 9 x=9 x=9时, S x = { 1 , 1 , 1 , 1 , ⋯   } S_x=\{1,1,1,1,\cdots\} Sx={1,1,1,1,},则
n % 9 = 0    ⟺    ⟮ ∑ i = 0 n − 1 a i ⟯ % 9 = 0 n\%9=0\iff\lgroup\sum_{i=0}^{n-1}a_i\rgroup\%9=0 n%9=0i=0n1ai%9=0即各位数之和能被9整除;

x x x等于其他数时,通过以下代码能找出 1 0 i % x 10^i\%x 10i%x的规律

def f(x):
    return [10 ** i % x for i in range(20)]

二进制

由于整数在计算中是以二进制储存的,我们不妨探究下二进制数整除和它各位数之间的规律。

设一个二进制数 n n n f i ( x ) = 2 i % x f_i(x)=2^i\%x fi(x)=2i%x S x = { f i ( x ) ∣ i = 0 , 1 , 2 , ⋯   , n − 1 } S_x=\{f_i(x)|i=0,1,2,\cdots,n-1\} Sx={fi(x)i=0,1,2,,n1} S x S_x Sx为有序集。

以下列举 x = 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 x=2,3,4,5,6,7,8,9,10 x=2,3,4,5,6,7,8,9,10的情况:

x = 2 x=2 x=2时, S x = { 1 , 0 , 0 , 0 , ⋯   } S_x=\{1,0,0,0,\cdots\} Sx={1,0,0,0,},则 n % 2 = 0    ⟺    a 0 % 2 = 0 n\%2=0\iff a_0\%2=0 n%2=0a0%2=0即最低位能被2整除,也即最低位为0(可与1按位与得到最低位);

x = 3 x=3 x=3时, S x = { 1 , 2 , 1 , 2 , ⋯   } S_x=\{1,2,1,2,\cdots\} Sx={1,2,1,2,},则
n % 3 = 0    ⟺    ⟮ ∑ i = 0 [ ( n − 1 ) / 2 ] a 2 i + 1 a 2 i ⟯ % 3 = 0 ( a 2 i + 1 a 2 i 表 示 一 个 两 位 数 ) n\%3=0\iff\lgroup\sum_{i=0}^{[(n-1)/2]}a_{2i+1}a_{2i}\rgroup\%3=0(a_{2i+1}a_{2i}表示一个两位数) n%3=0i=0[(n1)/2]a2i+1a2i%3=0(a2i+1a2i)

x = 4 x=4 x=4时, S x = { 1 , 2 , 0 , 0 , ⋯   } S_x=\{1,2,0,0,\cdots\} Sx={1,2,0,0,},则
n % 4 = 0    ⟺    a 1 a 0 % 4 = 0 ( a 1 a 0 表 示 最 低 两 位 ) n\%4=0\iff a_1a_0\%4=0(a_1a_0表示最低两位) n%4=0a1a0%4=0(a1a0)即最低两位能被4整除,也即最低两位为00(可与 ( 11 ) 2 (11)_2 (11)2按位与得到最低两位);

x = 5 x=5 x=5时, S x = { 1 , 2 , 4 , 3 , 1 , 2 , 4 , 3 , ⋯   } S_x=\{1,2,4,3,1,2,4,3,\cdots\} Sx={1,2,4,3,1,2,4,3,},则
n % 5 = 0    ⟺    ⟮ ∑ i = 0 [ ( n − 1 ) / 4 ] ( a 4 i + 2 a 4 i + 1 + 4 a 4 i + 2 + 3 a 4 i + 3 ) ⟯ % 5 = 0    ⟺    ⟮ ∑ i = 0 [ ( n − 1 ) / 4 ] ( a 4 i + 3 a 4 i + 2 a 4 i + 1 a 4 i − 5 a 4 i + 3 ) ⟯ % 5 = 0 n\%5=0\iff\lgroup\sum_{i=0}^{[(n-1)/4]}(a_{4i}+2a_{4i+1}+4a_{4i+2}+3a_{4i+3})\rgroup\%5=0\\ \iff\lgroup\sum_{i=0}^{[(n-1)/4]}(a_{4i+3}a_{4i+2}a_{4i+1}a_{4i}-5a_{4i+3})\rgroup\%5=0 n%5=0i=0[(n1)/4](a4i+2a4i+1+4a4i+2+3a4i+3)%5=0i=0[(n1)/4](a4i+3a4i+2a4i+1a4i5a4i+3)%5=0

x = 6 x=6 x=6时, S x = { 1 , 2 , 4 , 2 , 4 , ⋯   } S_x=\{1,2,4,2,4,\cdots\} Sx={1,2,4,2,4,},则
n % 6 = 0    ⟺    ⟮ a 0 + ∑ i = 1 [ ( n − 1 ) / 2 ] a 2 i a 2 i − 1 ⟯ % 6 = 0 n\%6=0\iff\lgroup a_0+\sum_{i=1}^{[(n-1)/2]}a_{2i}a_{2i-1}\rgroup\%6=0 n%6=0a0+i=1[(n1)/2]a2ia2i1%6=0

x = 7 x=7 x=7时, S x = { 1 , 2 , 4 , 1 , 2 , 4 , ⋯   } S_x=\{1,2,4,1,2,4,\cdots\} Sx={1,2,4,1,2,4,},则
n % 7 = 0    ⟺    ⟮ ∑ i = 0 [ ( n − 1 ) / 3 ] a 3 i + 2 a 3 i + 1 a 3 i ⟯ % 7 = 0 n\%7=0\iff\lgroup\sum_{i=0}^{[(n-1)/3]}a_{3i+2}a_{3i+1}a_{3i}\rgroup\%7=0 n%7=0i=0[(n1)/3]a3i+2a3i+1a3i%7=0

x = 8 x=8 x=8时, S x = { 1 , 2 , 4 , 0 , 0 , 0 , ⋯   } S_x=\{1,2,4,0,0,0,\cdots\} Sx={1,2,4,0,0,0,},则
n % 8 = 0    ⟺    a 2 a 1 a 0 % 8 = 0 n\%8=0\iff a_2a_1a_0\%8=0 n%8=0a2a1a0%8=0即最低3位能被8整除,也即最低3位为000(可与 ( 111 ) 2 (111)_2 (111)2按位与得到最低3位);

x = 9 x=9 x=9时, S x = { 1 , 2 , 4 , 8 , 7 , 5 , 1 , 2 , 4 , 8 , 7 , 5 , ⋯   } S_x=\{1,2,4,8,7,5,1,2,4,8,7,5,\cdots\} Sx={1,2,4,8,7,5,1,2,4,8,7,5,},则
n % 9 = 0    ⟺    ⟮ ∑ i = 0 [ ( n − 1 ) / 6 ] ( a 6 i + 2 a 6 i + 1 + 4 a 6 i + 2 + 8 a 6 i + 3 + 7 a 6 i + 4 + 5 a 6 i + 5 ) ⟯ % 9 = 0    ⟺    ⟮ ∑ i = 0 [ ( n − 1 ) / 6 ] ( a 6 i + 3 a 6 i + 2 a 6 i + 1 a 6 i + 2 a 6 i + 5 a 6 i + 4 + 5 a 6 i + 4 + a 6 i + 5 ) ⟯ % 9 = 0 n\%9=0\iff\lgroup\sum_{i=0}^{[(n-1)/6]}(a_{6i}+2a_{6i+1}+4a_{6i+2}+8a_{6i+3}+7a_{6i+4}+5a_{6i+5})\rgroup\%9=0\\ \iff\lgroup\sum_{i=0}^{[(n-1)/6]}(a_{6i+3}a_{6i+2}a_{6i+1}a_{6i}+2a_{6i+5}a_{6i+4}+5a_{6i+4}+a_{6i+5})\rgroup\%9=0 n%9=0i=0[(n1)/6](a6i+2a6i+1+4a6i+2+8a6i+3+7a6i+4+5a6i+5)%9=0i=0[(n1)/6](a6i+3a6i+2a6i+1a6i+2a6i+5a6i+4+5a6i+4+a6i+5)%9=0

x = 10 x=10 x=10时, S x = { 1 , 2 , 4 , 8 , 6 , 2 , 4 , 8 , 6 , ⋯   } S_x=\{1,2,4,8,6,2,4,8,6,\cdots\} Sx={1,2,4,8,6,2,4,8,6,},则
n % 10 = 0    ⟺    ⟮ a 0 + ∑ i = 1 [ ( n − 1 ) / 4 ] ( 2 a 4 i − 3 + 4 a 4 i − 2 + 8 a 4 i − 1 + 6 a 4 i ) ⟯ % 10 = 0    ⟺    ⟮ a 0 + ∑ i = 1 [ ( n − 1 ) / 4 ] ( 2 a 4 i a 4 i − 1 a 4 i − 2 a 6 i a 4 i − 3 − 10 a 4 i ) ⟯ % 10 = 0 n\%10=0\iff\lgroup a_0+\sum_{i=1}^{[(n-1)/4]}(2a_{4i-3}+4a_{4i-2}+8a_{4i-1}+6a_{4i})\rgroup\%10=0\\ \iff\lgroup a_0+\sum_{i=1}^{[(n-1)/4]}(2a_{4i}a_{4i-1}a_{4i-2}a_{6i}a_{4i-3}-10a_{4i})\rgroup\%10=0 n%10=0a0+i=1[(n1)/4](2a4i3+4a4i2+8a4i1+6a4i)%10=0a0+i=1[(n1)/4](2a4ia4i1a4i2a6ia4i310a4i)%10=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星临﹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值