2 3
3 4
8
81
例如2^7=2*(2*2)^(7/2)=2*(4)^3=2*4*(4*4)^(3/2)=2*4*(16)^1=2*4*16*(16*16)^(1/2)=128;
2^8=(2*2)^(8/2)=(4)^4=(4*4)^(4/2)=(16)^2=(16*16)^(2/2)=(256)^1=256*(256*256)^(1/2);
A的B次方=B个A连乘的积,3的4次方=3*3*3*3=81
2^30=30个2连乘的积≈10亿
a*b mod c=(a mod c)*(b mod c) mod c
注意结果和中间结果都会超过长整型longint的范围,注意要用free pascal下的int64类型的数据才能保证结果的正确性。如果你是在TP环境下编程的话,你在提交时只要将longint都改成int64后再将程序交上去就行。注意循环变量不能使用int64类型。
语言:C++Pascal