題目26 孿生素數問題

2021-08-08 21:35:49 字數 970 閱讀 9318

寫乙個程式,找出給出素數範圍內的所有孿生素數的組數。一般來說,孿生素數就是指兩個素數距離為2,近的不能再近的相鄰素數。有些童鞋一看到題就開始寫程式,不仔細看題,咱們為了遏制一下讀題不認真仔細的童鞋,規定,兩個素數相鄰為1的也成為孿生素數。

第一行給出n(0每組測試資料輸出佔一行,該行為m範圍內所有孿生素陣列數。

1 14

4首先,生成所有的素數,並將其標識。然後從m開始迴圈遍歷,判斷a[i]與a[i - 2]是否均為素數,如果是,則ans++,當m>=3時,ans的初始值為1,因為3和2也是一組孿生素數。

#include 

#include

using

namespace

std;

#define max_p 1000000

int a[max_p];

//生成素數演算法

void getprimes()

int main()

for (int i = m; i >=4; i--)

cout

<< ans << endl;

}

cout

<< endl;

return

0;}

#include 

#include

using

namespace

std;

bool vis[1000010];

int main()

cin>>n;

while(n--)

if(m>3)

cout

<1

if(m==3) cout

<<"1"

cout

<<"0"

0;}

由源**可知,演算法時間複雜度在於求出所有的素數,兩層迴圈,故演算法時間複雜度為o(sqrt(n) * sqrt(n)) = o(n)。

NYOJ 題目26 孿生素數問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 寫乙個程式,找出給出素數範圍內的所有孿生素數的組數。一般來說,孿生素數就是指兩個素數距離為2,近的不能再近的相鄰素數。有些童鞋一看到題就開始寫程式,不仔細看題,咱們為了遏制一下讀題不認真仔細的童鞋,規定,兩個素數相鄰為1的也成為...

nyoj26 孿生素數問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 寫乙個程式,找出給出素數範圍內的所有孿生素數的組數。一般來說,孿生素數就是指兩個素數距離為2,近的不能再近的相鄰素數。有些童鞋一看到題就開始寫程式,不仔細看題,咱們為了遏制一下讀題不認真仔細的童鞋,規定,兩個素數相鄰為1的也成為...

NYoj 26 孿生素數問題

孿生素數問題 時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 寫乙個程式,找出給出素數範圍內的所有孿生素數的組數。一般來說,孿生素數就是指兩個素數距離為2,近的不能再近的相鄰素數。有些童鞋一看到題就開始寫程式,不仔細看題,咱們為了遏制一下讀題不認真仔細的童鞋,規定,兩個素數相...