題目:時間限制:
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...