6N 1素數篩選法

2022-08-13 22:09:20 字數 355 閱讀 4906

任何乙個自然數,總可以表示成如下形式之一:6n,6n+1,6n+2,6n+3,6n+4,6n+5 (n=0,1,2,3,..),顯然,當n≥1時,6n,6n+2,6n+3,6n+4都不是素數,只有形如6n+1和6n+5的自然數才可能是素數,所以除了2,3外,所有的素數都可以表示成6n±1的形式(n=0,1,2,3,..),根據上述分析可以構造一面篩子,只對形如6n±1的自然數進行篩選,來減少篩選的次數。

const

int maxn=1000000

;int prime[maxn],nprime=0

;bool isprime(int

x)void

doprime()

高精度 素數判斷小優化(6N 1)

出自南昌理工學院acm include include include include using namespace std intmain b 1200 c 1200 a 1 1 b 1 2 for int i 1 i n 2 i for int j 1 j 1200 j for int j 1...

篩選法求素數(1)

在c 裡面開乙個bool型的陣列,bool型 true 1,false 0 include include define n 10001 int main bool prime n long long i,j for i 2 iprime 2 1 for i 2 i1.從n個數中找出偶數和奇數,找到...

篩選法求n以內素數(質數)

設定乙個標誌陣列isprime,isprime i 的值是1就表示i是素數。開始陣列元素值全部為1劃掉k的倍數,就是把isprime 2 k isprime 3 k 置成0最後檢查isprime陣列,輸出isprime i 為1的那些i include include using namespace...