(a+b)mod p = (a mod p + b mod p) mod p (a*b)mod p = ((a mod p) * (b mod p)) mod p (a-b)mod p = ((a mod p)-(b mod p) + p) mod pa^b mod p= ((a mod p)^b) mod p结合率:((a+b) mod p + c) mod p = (a + (b+c) mod p) mod p
((a*b) mod p * c) mod p = (a * (b*c) mod p) mod p
交换率: (a + b) mod p= (b+a) mod p
(a * b) mod p= (b * a) mod p
分配率: ((a +b)mod p * c) mod p= ((a * c) mod p + (b * c) mod p) mod p
重要定理:若a≡b ( mod p),则对于任意的c,都有(a + c) ≡ (b +c) ( mod p);若a≡b ( mod p),则对于任意的c,都有(a * c) ≡ (b *c) ( mod p); 若a≡b ( mod p),则对于任意的c,都有ac≡ bc ( mod p); 若a-b=c,则a%c=b%c 大数取模:正整数n和m,n<=10100,m<=109.#include
#include
using namespace std;
int main()
{
string n;
int ans=0,m;
cin>>n;
cin>>m;
int len=n.length();
for(int i=0; i 快速幂取模:#include
using namespace std;
int pow_mod(int a,int n,int m)
{
if(n==0)
return 1;
int x=pow_mod(a,n/2,m);
long long ans=(long long)x*x%m;
if(n%2==1)
ans=ans*a%m;
return (int)ans;
}
int main()
{
int a,n,m;
while(cin>>a>>n>>m)
cout<