求N以內的所有素數

2021-10-11 03:13:41 字數 1026 閱讀 7051

**如下:

#include

"stdafx.h"

#include

"conio.h"

#include

"math.h"

#include

"malloc.h"

typedef

long

long prime;

typedef

struct pn//構造素數節點

;struct pn *next;

}pn;

static pn*

(prime x)

//申請新的結點

void

plistinitiate

(pn *head)

//素數列表初始化

bool pninsert

(pn* p, prime x)

//新舊節點連線

void

show

(pn* head)

//呈現元素內容

}pn*

prime

(long

long n)

//求n以內的素數

}for

(i = count +

1; i < n; i++

)//計算利用愛拉托斯散篩法計算n以前的所有素數}if

(n == k)

}return head;

}int

main()

我在這裡求100000

100000

100000

以內的素數:

從運算結果可以看出100000

100000

100000

以內有9592個素數.

計算n以內的所有素數

尋找素數我們最常用的方法是暴力求解法,就是沒對於每個數n,從2找到n的開方,判斷每個數是不是素數,時間複雜度度為o nlog2n 時間複雜度高,是肯定的,因為太 暴力 所以,我想換個思路,其實求素數的過程,就是去除合數的過程,如果對於乙個雜湊,去除了合數,那麼留下的就是素數了,時間複雜度接近o n ...

輸出n以內的所有素數(質數)

素數 質數 除能被自己和1整除,不能被其他數整除的數叫素數,1和0既非素數也非合數。素數一定是不能整除2和3,但不能整除2和3的不一定是素數如35和49 def odd iter n liste i for i in range 2,n 1 k 0while k思路分析 1 先生成3開頭的奇數,因為...

計算整數N 以內所有素數 埃拉託色尼篩法

問題 給定正整數n n 1 求n以內所有素數 埃拉託色尼篩法利用合數質因數分解原理,首先將所有數假設為素數,標為1,然後,將已知素數的倍數 非素數 標記為0,最後,所有標為1的數即為素數。如下 include include int main int argc,char argv int i 0,j...