1003 數素數 (C++)
阿新 • • 發佈:2019-02-09
數素數
題目描述
令Pi表示第i個素數。現任給兩個正整數M <= N <= 10000,請輸出PM到PN的所有素數。
輸入描述:
輸入在一行中給出M和N,其間以空格分隔。
輸出描述:
輸出從PM到PN的所有素數,每10個數字佔1行,其間以空格分隔,但行末不得有多餘空格。
輸入例子:
5 27
輸出例子:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
解題思路
- 此題筆者認為有兩點需要注意,一是素數判定,二是格式輸出
- 對於素數判定,已經有很多概述了
- 對於格式判定,筆者採用的是,先用一個變數first判斷素數是否是每行首個元素,如果是則輸出該元素,否則輸出空格+該元素,同時每行最多上線10個元素,用flg判定
//虛擬碼
//zhicheng
bool is_Prim(int n)
{
for(i->n/i)
{
if(n%2==0) return false;
}
return true;
}
int main()
{
input-->m,n;
int flg=1,first=1;
for(i=2;;i++)
{
判斷是否為素數,如果是則進行下面操作
if(判斷是否第[m,n]個素數==true)
{
if(該行已經達到10個元素){換行;first,flg重新指該行第一個元素;}
if (first指向該行首元素) { 輸出該元素;first,flg指向下一個元素;}
else {輸出空格+該元素,flg指向下一個元素;}
}
}
}
日常更新,如有問題請指正
傳送門:程式碼連結