埃氏筛法:
埃氏筛法可以非常方便的求出小于等于整数n的所有素数。
不了解埃氏筛法的可以点击查看:埃氏筛法
利用埃氏筛法求解区间内的素数并输出:
b以内的最小约数一定不会超过根号b。
那么我们先做好2到根号b的表和[a,b)的表,然后从前者筛得素数的同时,也将其倍数从[a,b)表中划去。最后剩余的就是区间内的素数。
看如下示意图:
C++代码:
#include <iostream>
using namespace std;
typedef long long ll;
bool is_prime[100]; //表示范围a-b
bool is_prime_small[100]; //表示2-根号b
void sieve(ll a,ll b){
int p=0;
for(int i<