比赛 2025暑期集训第2场 评测结果 WEEEEWEWWE
题目名称 整数合并 最终得分 0
用户昵称 梧叶已同秋雨去 运行时间 0.827 s
代码语言 C++ 内存使用 3.58 MiB
提交时间 2025-06-29 15:42:43
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int a,b,p,sum,z[100005],cnt,n;
bool c[100005],bb[100005];
int zhi(int a){
	for(int i=2;i*i<=a;i++){
		if(a%i==0){
			return 0;
		} 
	}return 1;
}
void yu(){
	cnt=0;
	for(int i=2;i<=b;i++){
		if(zhi(i)){
			z[++cnt]=i;
			if(i==p){
				n=cnt;
			}
		}
	}
}
int main(){
	freopen("setb.in","r",stdin);
	freopen("setb.out","w",stdout);
	scanf("%d%d%d",&a,&b,&p);
//	for(int i=a;i<=b;i++){
//		if(zhi(i)){
//			sum++;
//			c[i]=1;
//			//cout<<i<<" ";
//		}
//	}
	yu();
	for(int i=n;i<=cnt;i++){
		int j=a/z[i];
		while(z[i]*j<=b){
			if(a<=z[i]*j&&z[i]*j<=b){
				c[z[i]*j]=1;
				//cout<<z[i]<<" "<<j<<" "<<z[i]*j<<endl;
				if(zhi[j]){
					bb[j]=1;
				}
			}
			j++;
		}
		if(bb[z[i]]==0){
			bb[z[i]]=1;
			sum++;
		}
	}
	for(int i=a;i<=b;i++){
		if(c[i]==0){
			sum++;
		}
	}
	cout<<sum;
	return 0;
}