比赛 ?板子大赛 评测结果 AAAAAAAATT
题目名称 整数合并 最终得分 80
用户昵称 2_16鸡扒拌面 运行时间 5.385 s
代码语言 C++ 内存使用 3.68 MiB
提交时间 2026-01-17 09:47:11
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

int a,b,p,dp[100009],ans=0;

bool prime(int x) 
{
	for(int i=2;i<=sqrt(x);i++) 
    {
		if(x%i==0&&x!=i)
			return false;
	}
	return true;
}

int jytzxy(int x) 
{
	if(dp[x]==x)
		return x;
	else
		return dp[x]=jytzxy(dp[x]);
}

void zxy(int x,int y)
{
	int xg=jytzxy(x),yg=jytzxy(y);
	if(xg==yg)
		return;
	else
		dp[xg]=yg;
}
int main() {
	freopen("setb.in","r",stdin);
	freopen("setb.out","w",stdout);
	cin>>a>>b>>p;
	for(int i=a;i<=b;i++)
		dp[i]=i;
	for(int i=a;i<=b;i++)
		for(int j=i;j<=b;j++)
			for(int k=p;k<=b/2;k++)
				if(i%k==0&&j%k==0&&prime(k)==1) zxy(i,j);
	for(int i=a;i<=b;i++)
		if(jytzxy(i)==i)
			ans++;
	cout<<ans;
	return 0;
}