Answers
535的二进制1000010111,可以被5整除。
1:摘取535的偶数位置的二进制数:00111,奇数位置的数字10001
2:交替给予符号+-进行加和
偶数位置为+0-0+1-1+1 = 1
奇数位置为+1-0+0-0+1 = 2
3:计算奇数位置加和的2倍加上偶数位置的加和,2×2+1=5,这个结果可以被5整除,则原数535可以被5整除,否则就不能被5整除。
例如2的二进制数字是:10,偶数位置总和+1=1,奇数位置总和+0=0,偶数位置总和+奇数位置总和×2=1,不能被5整除,2也就不能被5整除。
例如15的二进制数字是:1111,偶数位置总和+1-1=0,奇数位置总和+1-1=0,偶数位置总和+奇数位置总和×2=0,能被5整除,15也就能被5整除。
原理其实也很简单,想想以下的式子:
2的0次方 = 1 = 1 mod 5
2的1次方 = 2 = 2 mod 5
2的2次方 = 4 = -1 mod 5
2的3次方 = 8 = -2 mod 5
2的4次方 = 16 = 1 mod 5 以后就开始循环了。
源码就不给了吧,上面的三个步骤只是简单的加减操作,实现起来很简单。
myjimh
answered 12 years, 5 months ago