C 通過埃拉託斯特尼篩法例項來理解BitArray

2021-09-13 16:55:11 字數 711 閱讀 5636

static void main(string args)

#region 埃拉託斯特尼篩法找素數

//初始化乙個陣列把陣列的每個數都設定為1,代表這個索引下的數暫時為素數

//然後檢查陣列索引是否是2的倍數,如果是2的倍數就把該索引下的數設定為

//0,代表這個數是非素數,如此遍歷整個陣列,就能取得整個陣列的素數

for (int i = 2; i < array.length; i++)

}#endregion

//以下是通過bitarray來得到素數表

bitarray bits = new bitarray(25);

buildsieve(bits);

string str = console.readline();

if (bits.get(convert.toint32(str)))

console.writeline(str + "是素數!");

else

console.writeline(str + "不是素數!");

}static void buildsieve(bitarray bits)}}

int count = 0;

for (int i = 2; i < bits.count; i++)

}console.write(primes);}}

```

埃拉託斯特尼篩法

質數又稱素數。指在乙個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。怎麼判斷n以內的哪些數是質數呢?厄拉多塞是一位古希臘數學家,他在尋找素數時,採用了一種與眾不同的方法 先將2 n的各數放入表中,然後在2的上面畫乙個圓圈,然後劃去2的其他倍數 第乙個既未畫圈又沒有被劃去的數是3,...

埃拉託斯特尼篩法

埃拉託斯特尼篩法,簡稱埃氏篩或愛氏篩,是一種由希臘數學家埃拉託斯特尼所提出的一種簡單檢定素數的演算法。要得到自然數n以內的全部素數,必須把小於等於根號n的所有素數的倍數剔除,剩下的就是素數。這是什麼意思呢?以100為例,我們先建立乙個擁有101 0 100 個數字的陣列。先使用最小的素數2,將所有2...

埃拉託斯特尼 Eratosthene 篩法

下面是 功能 將1 n的素數輸出 使用了埃拉託斯特尼 eratosthene 篩法 include include using namespace std int prime 10000000 存放需要篩選數 int sieve int prime,int n,int k n是1 n這個範圍,k是當...