素數判定的正確姿勢

2022-05-02 06:45:09 字數 1056 閱讀 4678

1 #include 2 #include 3 #include 4 #include 5 #include 6

using

namespace

std;

7 typedef long

long

ll;8

//快速乘法

9ll modd;

10ll fast(ll x,ll y)

1120

return

ans;

21}

22bool

millerrabin(ll x)

2332 ll m=x-1;33

//測試[a^(n-1)]%n==1

34 ll ans=1;35

while(m>0)36

44 m/=2;45

if(log10(a)*2+1>=18

)46 a=fast(a,a);

47else

48 a=(a*a)%modd;49}

50if(ans%modd==1)51

return

false;52

else

53return

true;54

}55intmain()

5666

else

if(n%2==0)67

71else

7280

}81 cout<

yes"

<

83return0;

84 }

大質數判定

miller-rabin演算法:

多取幾個a,使得a與n互質

每次測試a^(n-1)%n是否等於1

如果等於1

就有巨大的可能是質數

但仍然有可能不是質數

所以叫做偽質數

但當測試資料足夠多組都成立的時候

不是質數的概率相當小

小到幾乎可以省略

於是我們就省略了

然後它就是質數了

素數的判定

problem description 對於表示式n 2 n 41,當n在 x,y 範圍內取整數值時 包括x,y 39 xinput 輸入資料有多組,每組佔一行,由兩個整數x,y組成,當x 0,y 0時,表示輸入結束,該行不做處理。output 對於每個給定範圍內的取值,如果表示式的值都為素數,則輸...

素數判定,素數篩

這些零碎的知識點每個都學過n次了,但隔一段時間就會忘,記錄下來 素數定義 只能被自身和1整除的大於1的正整數 通過這個定義,我們就可以得出判斷素數的 這裡用到了cmath中的sqrt函式,其原型為double sqrt double 所以在取上界的時候,為了避免double帶來的精度丟失,寧可多列舉...

RESTful的正確姿勢

很多人都有這樣的疑問 rest 英文 representational state transfer,簡稱rest 描述了乙個架構樣式的網路系統,比如 web 應用程式。它首次出現在 2000 年 roy fielding 的博士 中,roy fielding是 http 規範的主要編寫者之一。在目...