SDUT 3002 素數間隙(素數篩 暴力)

2022-07-27 23:15:21 字數 1171 閱讀 7481

time limit: 1000ms   memory limit: 262144k  有疑問?點這裡^_^

neko貓是乙個非常喜歡玩數字遊戲的會說話的肥貓,常常會想到非常多非常好玩的數字遊戲。有一天,它想到乙個叫做素數間隙的遊戲。據

neko

貓的定義,素數間隙是兩個相鄰素數p和

q組成的開區間

[p, q)

。所以素數間隙的長度就是

q-p。

比如7和

11在素數表裡是兩個相鄰的素數。所以7和

11的素數間隙的長度為

11-7,為4

。如今neko

貓會給你非常多個正整數k(

1<k≤

1299710

),讓你能立馬求出包括數字

k的素數間隙的長度。

為方便起見。假設k

是素數,則輸出0。

輸入包括t

組資料(1≤

t≤1000

)。每組測試資料佔一行。是乙個正整數k(

1<k≤

1299710

)。輸出t

行,每行乙個非負數。這個非負數是包括輸入數字

k的素數間隙的長度。不應有其它字元出如今輸出中。

10

1127

2492170

406

0114

水一發睡覺。。
#include #include #include #include #include #include #include #include #include #include #include #include #include #define ll long long

#define maxn 1299730

#define pp pair#define inf 0x3f3f3f3f

#define max(x,y) ( ((x) > (y)) ? (x) : (y) )

#define min(x,y) ( ((x) > (y)) ? (y) : (x) )

using namespace std;

int pri[maxn],n;

void init()

{ memset(pri,1,sizeof(pri));

pri[1]=0;

for(int i=2;i

SDUT 3002 素數間隙(素數篩 暴力)

time limit 1000ms memory limit 262144k 有疑問?點這裡 neko貓是乙個很喜歡玩數字遊戲的會說話的肥貓,經常會想到很多很好玩的數字遊戲,有一天,它想到乙個叫做素數間隙的遊戲。據 neko 貓的定義,素數間隙是兩個相鄰素數p和 q組成的開區間 p,q 所以素數間隙...

素數篩法(素數篩 線性篩)

求素數的方法在現階段可以總結為三種 這種方法最為簡單但效率太低,經過優化時間複雜度最低是o n sqrt n 輸入乙個n,輸出n以內所有素數 include intprime int n if flag 0 優化 printf d i intmain 素數篩法原理 2是素數,那麼2的所有倍數都是合數...

素數判定,素數篩

這些零碎的知識點每個都學過n次了,但隔一段時間就會忘,記錄下來 素數定義 只能被自身和1整除的大於1的正整數 通過這個定義,我們就可以得出判斷素數的 這裡用到了cmath中的sqrt函式,其原型為double sqrt double 所以在取上界的時候,為了避免double帶來的精度丟失,寧可多列舉...