數學之判斷素數

2022-04-12 03:39:00 字數 1055 閱讀 9376

前面我們講了判斷素數的方法(複雜度o(√n)),但是它太慢了,所以我們要有一種更快的判斷方法。

好像似乎沒有在保證正確率的情況下更快的了.......

那就把正確率吃掉好了。

~~很久很久以前,素數突然出現,帶來題目帶走題解又消失不見~~判斷十分危險,複雜度誰最短~~

當然是miller rabin辣!!!

某個神奇的定理:

蒟蒻證明湊合著看233

雖然它的逆定理不一定成立,但是我們可以多找幾個a帶進去試試嗎。如果很多個a都滿足的話,那n就很有可能是素數了。選幾個a呢?8~10個就夠了。a選什麼呢?幾個小的素數就夠了。

輸入格式:

乙個數n

輸出格式:

如果可以,輸出yes

如果不行,輸出no

輸入樣例:

輸出樣例:

no**如下:

#include#include

#include

#include

using

namespace

std;

long

long gg[12]=,n;

int kuaisumi(long

long a,int b,int

n)

return

ans;

} bool miller_rabin(int a,int

b)

int x=kuaisumi(a,d,n);

if(x==1)return

true

;

for(int i=0;i<=r;i++)

return

false;}

bool is_prime(int

n)int

main()

函式之判斷素數

寫乙個判斷素數的函式,在主函式輸入乙個整數,輸出是否是素數的訊息。乙個數如果是素數輸出prime 如果不是輸出 素數是只能被1和它本身整除的一類特殊的數,所以,要編寫乙個程式尋找這類數,如果乙個數還能被其他的數整除,就不符合要求 輸入的資料預設為素數,所以定義乙個變數為真 int p 1 檢查時只檢...

數學(反素數)

定義 對於任何正整數n,其約數個數記為f n 例如f 6 4 如果存在乙個正整數n滿足 對於任意的正整數x 0乙個反素數的所有質因子必然是從2開始的若干個質數,因為乙個數是反素數,說明在跟它約數相同的數中,它是最小的。如果n 2t1 3t2 5t3 那麼一定有t1 t2 t3 t4.另外易知如果n ...

利用孿生素數判斷素數

思路參見 孿生素數 所謂孿生素數指的是間隔為 2 的相鄰素數。大於6以上的孿生素數,p 1和p 1為素數,則p 1和p 1一定為奇數,則p一定為偶數,即p為2的倍數 p 1 p p 1為連續的自然數,他們一定有乙個是3的倍數,p 1和p 1為素數,則他們不為3的倍數,即p也為3的倍數 所以p一定為2...