c++打印素数表(线性筛)
生活随笔
收集整理的這篇文章主要介紹了
c++打印素数表(线性筛)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
從網(wǎng)上找打印素?cái)?shù)的代碼,發(fā)現(xiàn)有bug,
現(xiàn)修改如下,打印100萬(wàn)以內(nèi)的素?cái)?shù):
const int MAX = 1000000; int prime[MAX], primesize; bool isprime[MAX]; void getprime(int listsize) {memset(isprime, 1, sizeof(isprime));isprime[1] = false;primesize = 0;for (int i = 2; i <= MAX && i <= listsize; i++){if (isprime[i])prime[++primesize] = i;for (int j = 1; j <= primesize && i*prime[j] < listsize; j++){isprime[i*prime[j]] = false;if (i%prime[j] == 0)break;}}for (int i = 1; i <= primesize && i < MAX; i++){std::cout << prime[i] << " ";} }int main() {getprime(1000000);getchar(); }?
總結(jié)
以上是生活随笔為你收集整理的c++打印素数表(线性筛)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2007年考研时间安排表
- 下一篇: QT自定义控件设置文本过长时显示点点点…