51NOD 1181 質數中的質數(質數篩法)

2021-08-15 13:16:18 字數 1049 閱讀 2975

1181 質數中的質數(質數篩法)

如果乙個質數,在質數列表中的編號也是質數,那麼就稱之為質數中的質數。例如:3 5分別是排第2和第3的質數,所以他們是質數中的質數。現在給出乙個數n,求》=n的最小的質數中的質數是多少(可以考慮用質數篩法來做)。

input

輸入乙個數n(n <= 10^6)
output

輸出》=n的最小的質數中的質數。

自己寫的模擬版本

#include using

namespace

std;

const

int maxn =1e7;

bool

s[maxn];

bool

p[maxn];

intn;

void

solve ()}}

int cnt = 1

;

for(int i=1;i <= 1e6;i++) p[i] =s[i];

for(int i=1;i <= 1e6;i++)

}/*for(int i=1;i <= 100;i++)

printf("%d ",s[i]);

printf("\n");*/}

intmain ()

}return0;

}

然後  網上搜尋到乙個比較好的方法 

就是  把不是素數的都標記好  

(注意以後素數打表的時候  還是要用long long 否則會爆int的

#include using

namespace

std;

const

int maxn = 1e6+1000

;typedef

long

long

ll;bool

s[maxn];

intn;

intmain ()

cnt++;

for(ll j=i*i;j <= 1e6;j+=i)}}

return0;

}

51nod1181 質數中的質數

1181 質數中的質數 質數篩法 sgu基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 如果乙個質數,在質數列表中的編號也是質數,那麼就稱之為質數中的質數。例如 3 5分別是排第2和第3的質數,所以他們是質數中的質數。現在給出乙個數n,求 n的最小的質數中的質數是多少 可...

51nod 1181 質數中的質數(質數篩法)

如果乙個質數,在質數列表中的編號也是質數,那麼就稱之為質數中的質數。例如 3 5分別是排第2和第3的質數,所以他們是質數中的質數。現在給出乙個數n,求 n的最小的質數中的質數是多少 可以考慮用質數篩法來做 input 輸入乙個數n n 10 6 output 輸出 n的最小的質數中的質數。input...

51nod 1181 質數中的質數(質數篩法)

如果乙個質數,在質數列表中的編號也是質數,那麼就稱之為質數中的質數。例如 3 5分別是排第2和第3的質數,所以他們是質數中的質數。現在給出乙個數n,求 n的最小的質數中的質數是多少 可以考慮用質數篩法來做 input 輸入乙個數n n 10 6 output 輸出 n的最小的質數中的質數。input...