快速输出100000000以内的素数

来源:互联网 发布:武汉软件外包公司 编辑:程序博客网 时间:2024/06/06 02:39
#include <iostream>#include <vector>#include <stdint.h>using namespace std;void delete_all_multiple(vector<char> & table, int32_t n) {for (int32_t i = n * 2; i < table.size(); i += n) {table[i] = false;}}int32_t find_next_prime(vector<char> & table, int32_t prime) {for (int32_t i = prime + 1; i < table.size(); i++) {if (table[i]) { return i;}}return -1;}int main() {    vector<char> table(100000000, true);    table[0] = table[1] = false;    for (int32_t prime = 2; prime != -1; prime = find_next_prime(table, prime)) {    cout << prime << endl;    delete_all_multiple(table, prime);    }    return 0;}


原创粉丝点击