刪選法求素數

2021-07-31 16:53:44 字數 854 閱讀 3004

今天跟隨周老師學到了乙個新的求素數的方法,按照老師的程式設計方法,比較簡單的就求得了素數,以下**中,有乙個方法是自己寫的,乙個是按照老師的思路來的:

#include "stdafx.h"

#include

#define nrange 40000

//找出40000以內的素數(篩法)4203

void findprimenumber(int *arr, int nlen)

int i = 2;

int temp = 1;

int index = 0;

for (index = 1; index <= nlen; index++)

for (i = 2; i <= nlen; i++)

for (; j <= k; j++)

}if (j > k)

if (m%i == 0)

} }

}while (temp <= nlen)

temp++; }

temp--; }

//比較正確的解法:篩選法

void find_prime(int* arr, int n)

int i = 0;

int j = 1;

for (i = 0; i < nrange; i++)

for (i = 2; i < nrange; i++)

} }for (i = 1; i < nrange; i++)

} }int main() ;

//findprimenumber(arr, nrange);

find_prime(arr, nrange);

return 0; }

篩法求素數 線性篩法求素數

2021年更新版 篩法求素數 線性篩法求素數 要理解篩法求素數首先要知道乙個定理,整數唯一分解定理 任意大於等於2的正整數都有且只有一種方式寫出其質因子的乘積表示式。a p1p2p3p4 pn pi是素數且pi pj eg 2 2 4 22 12 223 36 2233 也就是說任意乙個合數都能分成...

素數篩法求素數

素數篩類似於打表標記,預先處理掉非素數的數,即素數的倍數 任意非素數都可以由幾個素數相乘得到 於是效率比暴力求解快得多。埃氏篩法的效率為o n loglog n 簡單易懂,但是會重複標記,比如當i為2時,6會被標記掉,然而當i為3時,6又會被重複標記,這樣的重複訪問加大了時間複雜度,於是有了尤拉篩。...

篩選法求素數

題目 求100以內的所有素數。求素數的演算法常考,篩選法求素數不常見。定義長度為101的int陣列a 101 初始化為1。依次測試1到100的所有數字是否為素數。若i為合數,則a i 0。篩選完畢後,所有非0元素a i 所對應的數字i為素數。include using namespace std i...