PAT B1013 數素數 20 分

2021-09-20 06:31:13 字數 1011 閱讀 4071

這道題目,有一點需要注意的就是,找出乙個包含了10000個素數的範圍,下面提供一下簡單的**:

這段**基本上包含三個部分:

1.怎麼判斷乙個數是素數

2.怎麼判斷某個範圍內的數哪些是素數,並且儲存下來

第一點和第二點都可以參考我的另一篇部落格:

3.在主函式裡面輸出,保證格式正確

分成以上三點進行思考,可以保證思路清晰。

int getprime()

} return count; //通過返回值就可以判斷素數的個數,然後再根據返回值調整maxn和maxn1的大小,不正

//記憶體不超,也保證不會出現段錯誤

}

下面是完整的**,簡單敘述一下自己在做本道題目遇到的麻煩(除錯了好幾次,都出現各種各樣的問題,怪自己太粗心):

1.找到乙個包含10000個素數的範圍,確定maxn和maxn1的範圍,注意maxn1不是10000,而是根據你選的maxn來確定;

2.按照格式輸出,基本沒啥問題,但是新手需要多注意一下呢!

#includeusing namespace std;

const int maxn = 110000;

const int maxn1 = 11000;

int prime[maxn1]; //用來存放某乙個範圍內的素數

bool judge[maxn];

//初始化為true,表示所有的數都滿足條件,然後再將一些不是素數的元素的值置成false

bool isprime(int num)

return true;

}// 埃氏篩法求某乙個範圍內素數

void getprime()

} //return count;

}int main()

if(add == 10)

}return 0;

}

PAT B 1013 數素數 (20 分)

令 pi表示第 i 個素數。現任給兩個正整數 m n 10 4,請輸出 p m到 p n的所有素數。輸入格式 輸入在一行中給出 m 和 n,其間以空格分隔。輸出格式 輸出從 pm到 pn的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。輸入樣例 5 27 輸出樣例 11 ...

PAT B1013 數素數 (20 分

1013 數素數 20 分 令 p i 表示第 i 個素數。現任給兩個正整數 m n 10 4 請輸出 p m 到 p n 的所有素數。輸入在一行中給出 m 和 n,其間以空格分隔。輸出從 p m 到 p n 的所有素數,每 10 個數字佔 1 行,其間以空格分隔,但行末不得有多餘空格。5 2711...

PAT B1013 數素數 20 (20 分)

令p i 表示第i個素數。現任給兩個正整數m n 10 4 請輸出p m 到p n 的所有素數。輸入格式 輸入在一行中給出m和n,其間以空格分隔。輸出格式 輸出從p m 到p n 的所有素數,每10個數字佔1行,其間以空格分隔,但行末不得有多餘空格。輸入樣例 5 27輸出樣例 11 13 17 19...