质数

定义

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定0,1既不是质数也不是合数)。
互质是公约数只有1的两个整数,叫做互质整数。

1和-1与所有整数互素,而且它们是唯一与0互素的整数。

素数筛

其核心思想是每个质数只被其最小的素数筛掉。
参考代码

void get_p()
{
    for (int i = 2; i < N; ++i)
    {
        if (!book[i])//没有标记则为素数
        {
            p[cnt_p++] = i;
        }
        for (int j = 0; p[j] * i < N; ++j)
        {
            book[i * p[j]] = 1;//用该素数筛掉合数
            if (i % p[j] == 0)
                break;
        }
    }
}
posted @ 2023-01-19 21:20  何太狼  阅读(114)  评论(0编辑  收藏  举报