トピック:
分析:
(1)(AXB)%C =(A1 + N1 C)(A2 + N2 C)%C =(a1xa2)%C =(A1%C XA2%C)%のC
(2)^ Bの%のC
(= %のC)^ B%C
=((%のC)^(B - T)*(%c)は^ T)%C
式の証明:
(X + Y)%C =(Xの%のC + Y%C)%のC
AAA ... AAA%C =((AC)...%C + C * ...%のC)%C =(AC)...%のC
(3)高速電力アルゴリズムを習得します。
(4):以下のチャートを見て、あなたがする必要があります(パイレーツ)
コード:
int main()
{
int a=2;
vector<int> v;
v.push_back(1);
v.push_back(0);
a=a%1337;
int A[10];//存放a的i次方。
A[0]=1;
for(int i=1;i<10;i++)
{
A[i]=(A[i-1]*a)%1337;
}
int b=1;
if(v.size()==1) return A[v[0]];
for(int i=0;i<v.size()-1;i++)
{
b=(b*A[v[i]])%1337;
//2
int b1=b*b;
b1=b1%1337;
//4
int b2=b1*b1;
b2=b2%1337;
//8
int b3=b2*b2;
b3=b3%1337;
b=(b3*b1)%1337;
}
cout<<(b*A[v[v.size()-1]])%1337;
}