篩法求素數 求100之內的素數

2021-08-21 18:01:35 字數 492 閱讀 8247

素數:定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。

篩法求素數,需要對素數和非素數做出不同的標記,或者只標記非素數(素數),現用0標記非素數,素數不標記。

引用陣列,使0-100與陣列元素一 一相對應(0即a[0],1即a[1],2即a[2]········)

注意特例,1(即a[1])不是素數,首先標記為0;

剩下的數字當中(2-100),判斷被除數是否為素數。j:被除數,i:除數,且j=i+1,如果能除盡,把j標記為0,即j不是素數。

那麼沒有標記過的(非0)數字就為素數。

一行輸出10個。

**:

#include#includeint main()

for(i=0,n=0;i<100;i++)

if(n==10)//:記錄有多少個素數,滿10 個素數就輸出一行。

}    printf("\n");

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之內的素數

題目 求100之內的素數 程式分析 判斷素數的方法 用乙個數分別去除2到 sqrt 這個數 如果能被整除,則表明此數不是素數,反之是素數。1 package com.li.fiftyalgorthm 23 4 題目 判斷101 200之間有多少個素數,並輸出所有素數。5 程式分析 判斷素數的方法 用...