(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 p
a^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()
int main()
{ int a,n,m;
while(cin>>a>>n>>m)
cout<
同餘與模算術
模線性方程組 注意在減法中,由於a mod n可能小於b mod n,需要在結果加上n,而在乘法中,需要注 意a mod n和b mod n相乘是否會溢位。例如,當n 109時,ab mod n一定在int範圍內,但a mod n和b mod n的乘積可能會超過int。需要用long long儲存中...
同餘與模算術
1.大整數取模 把大整數寫成 自左向右 的形式 1234 1 10 2 10 3 10 4 然後逐步取模。eg n 10100,m 1018。但是要注意乘法溢位的問題。includeusing namespace std intmain return0 為了解決上面乘法溢位的問題,可以採用如下方法 ...
同模餘定理
宣告 借鑑高手!一 同餘 對於整數除以某個正整數的問題,如果只關心餘數的情況,就產生同餘的概念。定義1用給定的正整數m分別除整數a b,如果所得的餘數相等,則稱a b對模m同餘,記作a b mod m 如 56 0 mod 8 定理1整數a,b對模m同餘的充要條件是 a b能被m整除 即m a b ...