80分求调!!!
  • 板块P1621 集合
  • 楼主IAKIOI66666
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/6/10 17:56
  • 上次更新2024/6/10 20:55:51
查看原帖
80分求调!!!
1343308
IAKIOI66666楼主2024/6/10 17:56
#include<iostream>
#include<cstdio>
using namespace std;
int a,b,p,cnt,f[500001];
int find(int x){
	if(x==f[x])return x;
	return find(f[x]);
}
bool cmp(int x){
	if(x==2)return 1;
	for(int i=2;i<=x/2;i++)
		if(x%i==0)return 0;
	return 1; 
}

int main(){
	scanf("%d%d%d",&a,&b,&p);
	for(int i=1;i<=b;i++)f[i]=i;
	for(int i=p;i<=b;i++){
		if(cmp(i))
			for(int j=2*i;j<=b;j+=i)f[find(i)]=find(j);
	}
	for(int i=a;i<=b;i++)
		if(f[i]==i)cnt++;
	printf("%d",cnt);
	return 0;
}
2024/6/10 17:56
加载中...