记录编号 74226 评测结果 AAAAAAAAAA
题目名称 整数合并 最终得分 100
用户昵称 Gravatardigital-T 是否通过 通过
代码语言 C++ 运行时间 0.012 s
提交时间 2013-10-24 15:15:28 内存使用 0.79 MiB
显示代码纯文本
#include<fstream>
using namespace std;
ifstream fi("setb.in");
ofstream fo("setb.out");
int f[100001];
bool boo[100001];
int Gcd(int x,int y){return y==0?x:Gcd(y,x%y);}
int ufs(int x){return f[x]==x?x:f[x]=ufs(f[x]);}
void unite(int x,int y)
{
	int tmp1=ufs(x),tmp2=ufs(y);
	f[tmp2]=tmp1;
}
int main()
{
	int A,B,P,i,j;
	fi>>A>>B>>P;
	for(i=1;i<=B;i++)boo[i]=true,f[i]=i;
	//==================================
	for(i=2;i<=B;i++)
	if(boo[i])
	{
		for(j=i+i;j<=B;j+=i)
		{
			boo[j]=false;
			if(i>=P&&j>=A)
				unite(i,j);
		}
	}
	//===================================
	int ans=0;
	for(i=1;i<=B;i++)boo[i]=true;
	for(i=A;i<=B;i++)
	{
		j=ufs(i);
		if(boo[j])
		{
			boo[j]=false;
			ans++;
			//fo<<i<<endl;
		}
	}
	fo<<ans<<endl;
	return 0;
}