请教:如何求2^100 mod 5 ?
不用编写程序,如何求?
[解决办法]
对 5 取 模 ,只跟 个位有关。
[解决办法]
结果 4, 8, 6, 2 循环
- C/C++ code
int res = 2;for (int i = 1; i < 100; i++) { res %= 10; res *= 2;}res %= 5;
[解决办法]
mod 5:
2^100 = 4^50 = (-1)^50 = 1
[解决办法]
2 ^ 100 % 5 = 2^(100 % 5) % 5 = 2^0 % 5 = 1
[解决办法]
[解决办法]
不好意思,楼上计算错误了,不过理论依据是对的。
[解决办法]
5楼的2 ^ 100 % 5 = 2^(100 % 5) % 5 = 2^0 % 5 = 1
以此类推:
2 ^ 5 % 5 = 2^(5 % 5) % 5 = 2^0 % 5 = 1
可惜2 ^ 5=32
[解决办法]
因为5是质数,所以可以这样,理论依据是费马小定理。
[解决办法]
2楼的正解
2^100 结果的个位数是2、4、8、6四次一循环,刚好100次方,100是4的倍数
所以2^100的个位数是6
2^100%5=1
[解决办法]
不好意思,写的有问题,应该是
2 ^ 100 % 5 = 2^(100 % (5 - 1)) % 5 = 2^(100 % 4) % 5 = 1
假如a是一个整数,p是一个质数,那么如果a不是p的倍数,这个定理也可以写成
a^(p-1) mod p = 1
[解决办法]
数学方法:
设2^n=5x+y (x,y均为整数)
=>
2^(n+4)=(5x+y)*16=5*(16x+3y)+y
=>
mod(2^n,5)=mod(2^(n+4),5)=mod(2^(n+4m),5) (m为整数)
所以: mod(2^100,5)=mod(2^0,5)=1