素數打表(持續更新中)

2021-07-10 00:15:09 字數 505 閱讀 2968

比如要找100以內的素數,我們能首先知道2是素數,然後從2*2開始,2的倍數都不是素數

3是素數,然後從3*3開始,3的倍數都不是素數

。。。。

為啥會從2或者3的平方開始呢?

(因為比如7,7*1   7*2   7*3都可以寫成 2*7,3*7的形式,在前面已經判斷過了,所以只需要從7*7開始判斷就好)

依次更新,所有不大於100的素數都可以找出來

這只是一種方法,相信以後會有更簡單的方法

#include#include#include#includeusing namespace std;

int prime[1000003];

void init_prime()

j = 0;

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

if(!prime[i])

prime[j++] = i;

}int main()

美素數 素數打表

description 小明對數的研究比較熱愛,一談到數,腦子裡就湧現出好多數的問題,今天,小明想考考你對素數的認識。問題是這樣的 乙個十進位制數,如果是素數,而且它的各位數字和也是素數,則稱之為 美素數 如29,本身是素數,而且2 9 11也是素數,所以它是美素數。給定乙個區間,你能計算出這個區間...

ACM 素數專題(持續更新)

埃拉託斯特尼篩法,或者叫埃氏篩法 聽上去似乎很高大上的樣子 includeusing namespace std typedef long long ll const int n 100005 bool prime n void init int main 比如預處理每個數的所有因數 include...

高效素數打表

大家所知的素數打表時間複雜度幾乎都是n2。就是這種 void init prime j 0 for i 2 i 1000002 i if prime i prime j i 在網上搜到了另一種方法,效率提高了不少。巧妙之處還在研究中,等理解差不多就仔細分析一下。下面是 大家可以發表一下自己的看法,交...