poj2635 同餘定理 素數篩法

2021-07-26 22:20:11 字數 734 閱讀 1060

題意:給定乙個數,這個數是兩個素數的乘積,並給定乙個限制l,問是否兩個素數中存在小於l的數,若存在輸出較小質數,否則列印『good』。

思路:

1 . x = a * b, a和b都是素數,那麼x只能分解為(1,x)或則(a,b),因為 x 只有四個因子1,a,b,x。

3 . 素數打表,方便快速判斷某個數是否為質數。

根據第乙個結論,可以知道如果某個素數(這個數小於限制l)能被大數整除,那麼這個數就是最小質數,就可以結束判斷。

ac**

#include#include#include#includeusing namespace std;

const int maxn = 1000005;

int vis[maxn], prim[maxn], a[105];

char s[105];

int deal(int n)

return cnt;

}// 轉換千進製

int turn(int n)

return c;

} bool mod(int x, int n)

if(m == 0) return true;

return false;

}int main()

} if(flag) printf("good\n");

} return 0;

}

如有不當之處歡迎指出!

POJ 2635(同餘定理)

首先介紹一下同餘定理 所謂的同餘,顧名思義,就是許多的數被乙個數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 ...

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 ...