====== 2的整数次方幂的个位数是多少? ====== 令 x=2^n,其中n为正整数,令 f(n)=2^n mod 10,求f。 ===== 解 ===== 由于n>=1且n为整数,因此 2^n 一定为偶数。对于2的整数次方幂,对其质因数分解只能得到2,由于系数中没有5,因此 f(n)<>0。于是 f(n) 只可能有4个取值:2、4、6、8。 由于模乘运算的性质,对于模10的计算而言,两个正整数相乘时只需要考虑其个位即可: a*b mod 10 = (a mod 10)*(b mod 10) mod 10 由于2的整数次方幂的个位只有2、4、6、8四个可能的取值,根据上述性质,可以很容易地得到: |*|2|4|6|8| |2|4|8|2|6| |4|8|6|4|2| |6|2|4|6|8| |8|6|2|8|4| 很明显,当且仅当乘数个位为6时,乘积与另一乘数的个位相等。2的整数次方幂中,满足个位为6的最小数值是2^4=16。 我们知道: f(n+4)=2^(n+4) mod 10=(2^4 * 2^n) mod 10=(2^4 mod 10)*(2^n mod 10) mod 10=6*(2^n mod 10) mod 10 根据前面的表格,我们可以进一步得出: f(n+4)=2^(n+4) mod 10=(2^n mod 10)mod 10=2^n mod 10=f(n) 故f在其定义域上是一个周期为4的函数,即: f(n)=f(n mod 4) 注意此处有个小问题是f(0)并不在f的定义域内。为了简便起见,我们令f(0)=6。这样一来,就没有什么不是拉格朗日插值解决不了的问题了。 定义: g(x)=-10x^3/3+15x^2-47x/3+6 注:若此问题是为了用程序来算,此处也可以用查表法: |x|g(x)| |0|6| |1|2| |2|4| |3|8| 则: f(n)=g(n mod 4)