數論 素數測試

2021-06-18 19:46:07 字數 626 閱讀 8878

檢查乙個正整數是否是素數稱作素數測試。

基本素數判別法:正整數n是素數,當且僅當它不能被任何乙個小於根號n的素數整除

埃拉託斯尼斯篩法:先把n個自然數按次序排列起來。1不是

質數,也不是

合數,要划去。第二個數2是

質數留下來,而把2後面所有能被2

整除的數都劃去。2後面第乙個沒劃去的數是3,把3留下,再把3後面所有能被3

整的數都劃去。3後面第乙個沒劃去的數是5,把5留下,再把5後面所有能被5整除的數都劃去。這樣一直做下去,就會把不超過n的全部合數都篩掉,留下的就是不超過n的全部質數。

一種方法是:算數基本定理 ,每個數都可以寫成p1^a1*p2^a2.....pn^an

這說明他的因子一定含有素數,所以在判斷他是否是素數的時候直接判斷小於根號n的素數就可以了,!!!用於稍微大點的數的素數測試,比如篩法一次篩不出了,就可以篩一小部分,然後用這種方法求它是否是素數。

還有6n+1法

任何乙個自然數都可以寫成如下形式

6n,6n+1,6n+2,6n+3,6n+4,6n+5,當n >= 1時 6n+2,6n+3,6n+4,都不是素數,只有6n+1或+5是,除了2,3之外,所有的素數都可以表示成6n+-1

可以只對形如6n+-1的自然數進行篩選。

數論之 素數

素數又叫質數,乙個數除了1和他本身沒有其他因子的叫素數。最一般的判斷素數寫法 bool prime int x return true 快點的n開平方的複雜度bool prime int x 這是開平方的寫法,減小了查詢範圍。return true bool prime int x 這是乘的寫法,讓...

數論1 素數 約數 反素數

素數是指只能被自身整除和被1整除的數 大於1的自然數,1不是素數 不是素數的數為合數 常見的題型有 素數的判定 素數的篩選兩種題型 素數的篩選 const int n 1000001 int primes n cnt primes存素數 cnt 存素數的個數 bool st n 存數n是否被篩過 v...

(數論三)素數原理

打算寫一下自己對acm中常用到的數論知識,加深鞏固和查缺補漏。在數學中,對於n 1,若n的因子只有1和它本身,那麼n就是質數,也稱作素數。而在acm中素數型別的題目是經常會碰到的。那麼我們可以怎麼判斷素數呢?一.對於判斷單個n是否為素數,我們可以通過三種情況來判斷 1 用i遍歷2 n 1,若n i ...