演算法工程師數學題(4)同餘定理

2021-08-20 22:29:46 字數 693 閱讀 2789

同餘定理性質:

(1)同乙個除數,兩數的和(或差)與他們餘數的和(或差)同餘數。•(a + b) % m = (a % m + b % m) % m

(2)同乙個除數,兩數的乘積與他們餘數的乘積同餘。•(a * b) % m = ((a % m) * (b % m)) % m

(3)同乙個除數,如果兩個整數同餘,那麼他們的差就一定能被這個數整除。

(4)同乙個除數,如果兩個整數同餘,那麼他們的乘方仍然同餘。

靈活運用性質,把求乙個比較大的數字除以某數的餘數問題轉化為求乙個較小數除以這個數的餘數,使複雜的問題變得簡單化。

(5)1234 = ((1 * 10 + 2) * 10 + 3) * 10 + 4舉例:

#include#include#define max 10000

using namespace std;

void function(int x, int num, int m)

printf(" a[i] r i %d %d %d\n", a[i],r,i);

} cout << x << "的" << num << "次冪" << "除以" << m << "餘數是" << a[num % i] << endl;

}int main()

演算法工程師數學題(2)篩法求素數

參考 原理 篩法的思想是去除要求範圍內所有的合數,剩下的就是素數了,而任何合數都可以表示為素數的乘積,因此如果已知乙個數為素數,則它的倍數都為合數。一般篩法求素數 include cstdio include cstring using namespace std define n 100 求n範圍...

演算法工程師數學題(1)最大公約數

求最大公約數三種方法 輾轉相除法 演算法簡介 將兩個數a,b相除,如果餘數c不等於0,就把b的值給a,c的值給b,直到c等於0,此時最大公約數就是b.void main printf s d和 d的最大公約數為 d n m,n,b printf s n cvwaitkey 0 更相減損術 演算法簡介...

網易 大眾 京東演算法工程師崗程式設計題

v先生有一天工作得很晚,回家的時候要穿過一條長度為l的筆直街道,這條街道上有n個路燈。假設這條街起點為0,終點為l,第i個路燈的座標為ai。路燈發光能力以正數d來衡量,其中d表示路燈能夠照亮的街道上的點與路燈的最遠距離,所有路燈發光能力相同。為了讓v先生看清回家的路,路燈必須照亮整天街道,又為了節省...