1.费马小定理(Fermat’s little theorem)是数论中的一个重要定理,在1636年提出,其内容为: 假如p是质数,且gcd(a,p)=1,那么 a(p-1)≡1(mod p),例如:假如a是整数,p是质数,则a,p显然互质(即两者只有一个公约数1),那么我们可以得到费马小定理的一个特例,即当p为质数时候, a^(p-1)≡1(mod p)。
2.百度(费马小定理求余数应用)
11是素数,∴4^10≡1 (mod11)
而5^273的个位数字是5
∴设5^273=10n+5
∴4^(5^273)=4^(10n+5)=(4^10)^n·4^5
而(4^10)^n≡1^n≡1 (mod11)
∴4^(5^273)≡4^5≡16·16·4≡5·5·4≡3·4≡1 (mod11)
3.快速幂模板:
//快速幂模板:
lint quick(lint base, lint pow)
{
lint ret=1;
while(pow)
{
if (pow&1) ret=(ret*base)%mod;
base=(base*base)%mod;
pow>>=1;
}
return ret%mod;//记得最后mod,比如mod==1的情况
}
4.哈理工 1251 Marshal’s Confusion III
#include <iostream>
using namespace std;
const int mod=317000011;
long long mul(long long m,long long n,int k)
{
long long res=1;
while(n)
{
if(n&1)
res=(res*m)%k;
m=(m*m)%k;
n>>=1;
}
return res;
}
int main()
{
int T;
cin>>T;
while(T--)
{
int a,b,c;
cin>>a>>b>>c;
cout<<mul(a,mul(b,c,mod-1),mod)<<endl;
}
return 0;
}
for(int i=0;i<c;i++)
{
sum1=fp(a,b);
a=sum1;
}
//这个更好理解点