這道題目,有一點需要注意的就是,找出乙個包含了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...