快速查詢素數

2021-08-07 21:22:04 字數 744 閱讀 8104

題目:時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3

描述

現在給你乙個正整數n,要你快速的找出在2.....n這些數裡面所有的素數。

輸入給出乙個正整數數n(n<=2000000)

但n為0時結束程式。

測試資料不超過100組

輸出將2~n範圍內所有的素數輸出。兩個數之間用空格隔開

樣例輸入

5

1011

0

樣例輸出

2 3 5

2 3 5 7

2 3 5 7 11

**

經典題上傳者

路過這心得:1.主要用到埃氏篩選,節約時間。

2.將陣列設定成char型別,節省空間記憶體。

**

#include

#define m 2000001

# include 

char a[m]=;//a[i]是記錄i是否為素數的陣列,若為素數,a[i]=0;若不為素數a[i]=1。初始化為0

int main() {

int  n,i,j,q;

q=sqrt(m)+1;

a[0]=a[1]=1;

for(i=2;i

ac情況:

快速查詢素數

快速查詢素數 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸...

快速查詢素數

我們以前判斷素數是從2到這個數的平方根一直檢查是否是素數。include include include includeusing namespace std int main if f 1 printf yes n else printf no n 現在如果數很大的話我們可以把每個數的倍數去掉就行...

快速查詢素數

時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 現在給你乙個正整數n,要你快速的找出在2.n這些數裡面所有的素數。輸入 給出乙個正整數數n n 2000000 但n為0時結束程式。測試資料不超過100組 輸出將2 n範圍內所有的素數輸出。兩個數之間用空格隔開 樣例輸入 5 1...