埃氏筛选法求质数

256 阅读1分钟

一、质数定义

在大于1的整数中,只能被1和它本身整除的数。

二、图解

20200309140823393.gif

三、代码实现

#include <iostream>
using namespace std;
bool is_prime[100];

void init()
{
    for (int i = 2;i < 100; ++i)
    {
        is_prime[i] = 1;
    }
}

void judge_prime()
{
    init();
    for (int i = 2; i*i < 100; ++i)
    {
        if (is_prime[i] == 1)
        {
            for (int j = i*i; j < 100; j+=i)
            {
                is_prime[j] = 0;
            }
        }
    }
}

int main()
{
    judge_prime();
    for (int i = 2; i < 100; ++i)
    {
        if (i%10 == 0)
        {
            cout << endl;
        }
        if (is_prime[i] == 1)
        {
            cout << i << " ";
        }
    }
    cout << endl;
}

image.png