线性筛求助
查看原帖
线性筛求助
500803
zzxzzxCCC楼主2023/8/23 23:00
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<bits/stdc++.h>
using namespace std;
bool is_prime[1000010];
int primes[1000010],prime_cnt=0;
int L,R,ans;
void liner_sieve(){
	is_prime[1]=false;
	for(int i=2;i<1000005;++i)
		is_prime[i]=true;
	for(int i=2;i<1000005;++i) {
		if(is_prime[i]){
			++prime_cnt;
			primes[prime_cnt]=i;
		}
		for(int j=1;j<=prime_cnt;++j){
			int p=primes[j];
			if(p*i>1000005) break;
			is_prime[p*i]=false;
			if(i%p==0) break;
		}
	}
}
int main(){
    scanf("%d%d",&L,&R);
	liner_sieve();
	for(int i=L;i<=R;i++)
		if(is_prime[i]==true)
		    ans++;
	printf("%d",ans);
	return 0;
}
2023/8/23 23:00
加载中...