质数
定义
质数又称素数。一个大于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;
}
}
}