POJ 2635(同餘定理)

2021-07-09 16:29:13 字數 985 閱讀 5257

首先介紹一下同餘定理:

所謂的同餘,顧名思義,就是許多的數被乙個數d去除,有相同的餘數。d數學上的稱謂為模。如a=6,b=1,d=5,則我們說a和b是模d同餘的。因為他們都有相同的餘數1。 

數學上的記法為: 

a≡ b(mod d) 

可以看出當n常用公式:

1)a≡a(mod d) 

2)a≡b(mod d)→b≡a(mod d) 

3)(a≡b(mod d),b≡c(mod d))→a≡c(mod d) 

如果a≡x(mod d),b≡m(mod d),則 

4)a+b≡x+m (mod d) 

5)a-b≡x-m (mod d) 

6)a*b≡x*m (mod d ) 

有以上公式可得推論:

(a+b)%c=(a%c+b%c)%c;

(a*b)%c=(a%c*b%c)%c;

對於大數的求餘,聯想到進製轉換時的方法,得到

舉例如下,設大數 m=1234,模n

就等於((((1*10)%n+2%n)%n*10%n+3%n)%n*10%n+4%n)%n

#include#include#include#include#include#includeusing namespace std;

const int inf=0x3f3f3f3f;

const int maxn=105;

int t,l;

char k[maxn];

int a[maxn];

int prime[1000010];

void work()

} }int pnum=0;

for(int i=1;i<1000010;i++)

}int main()

index++;

} if(flag)

printf("good\n");

} return 0;

}

poj2635 同餘定理 素數篩法

題意 給定乙個數,這個數是兩個素數的乘積,並給定乙個限制l,問是否兩個素數中存在小於l的數,若存在輸出較小質數,否則列印 good 思路 1 x a b,a和b都是素數,那麼x只能分解為 1,x 或則 a,b 因為 x 只有四個因子1,a,b,x。3 素數打表,方便快速判斷某個數是否為質數。根據第乙...

poj 2635(同餘模運算)

大致題意 給定乙個大數k,k是兩個大素數的乘積的值。再給定乙個int內的數l 問這兩個大素數中最小的乙個是否小於l,如果小於則輸出這個素數。高精度求模 同餘模定理 1 char格式讀入k。把k轉成千進製kt,同時變為int型。把數字往大進製轉換能夠加快運算效率。若用十進位制則耗費很多時間,會tle。...

POJ1426(BFS 同餘定理)

find the multiple 注意點 可以用一棵樹來表示bfs中各個枝,左枝0,右枝1,然後n 2是n的父節點。類似於huffman樹的定理,最後的輸出序列由 2,2交替運算得來。所以本題關鍵點就是用huffman樹結構儲存所有餘數,並最終輸出。include include include ...