问:
给定一个整数,最多1000位,如何判断他能不能被11整除?
eastcowboy答:
所有奇数位数字相加,所有偶数位数字相加。把这两个和相减。
如果差是11的倍数,则原数可以被11整除,否则不能被11整除。
证明如下:
首先要说明的是:(a%b)==((a-n*b)%b) ---1式,这个东西很显然就不多说了,当然也可以证明。
将一个任意数计为
a1*10^n+a2*10^(n-1)+a3*10^(n-2)+...+aN*10^n+a(N+1) ---2式
因为10^n==(11-1)^n==11^n-11^(n-1)+...+(-1)^n(当然有系数,不过系数对本证明没有影响,也不好写,就省略啦~!!~)
由于---1式,所以aX*10^n %11 == aX*(-1)^n %11
所以---2式%11 == { a1*(-1)^n+a2*(-1)^(n-1)+...+aN*(-1)+a(N+1) } %11
当n为偶数的时候,上式 == { a1+a3+a5+...+a(N+1)-(a2+a4+a6+...+aN) } %11,得证。
当n为奇数的时候也是类似的
完!
评论