文章

34

粉丝

0

获赞

264

访问

4.7k

头像
素数判定 题解:
P1102 兰州大学机试题
发布于2026年3月11日 20:12
阅读数 43

#include <bits/stdc++.h>
using namespace std;

const int maxn=100000+5;
int prime[maxn];
void getPrime(){
	memset(prime,0,sizeof(prime));
	for(int i=2;i<=maxn;i++){
		if(!prime[i]) prime[++prime[0]]=i;
		for(int j=1;j<=prime[0]&&prime[j]*i<=maxn;j++){
			prime[prime[j]*i]=1;
			if(i%prime[j]==0) break;
		}
	}
}

int main(){
	getPrime();
	int a,b;
	while(scanf("%d %d",&a,&b)!=EOF){
		if(a>=b) {
			int temp=a;
			a=b;
			b=temp;
		}
		int count=0;
		for(int i=1;i<maxn;i++){
			if(prime[i]>b) break;
			if(prime[i]>=a&&prime[i]<=b) 	count++;	
		}
		printf("%d\n",count);
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发