枫月雨凌 @ 2019-06-27 17:22:19
选择性自爆,测试老久没个鬼用 30分QAQ
#include<bits/stdc++.h>
using namespace std;
int t[1000001],h[1000001];
int re(int t)
{
int rs;
int i = 2;
while(t>2) {
if(t%i==0) {
rs=i;
t/= i;
} else i++;
}
return rs;
}
bool sp(int n){
for(int i=2; i<=sqrt(n); i++){
if(n%i == 0){
return 1;
}
}
return 0;
}
int sb(int a,int b){
int c;
c=a%b;
while(c!=0){
a=b;b=c;c=a%b;
}
if(sp(b)==1)
return re(b);
return b;
}
int find(int a){
if(t[a]==a)
return a;
return t[a]=find(t[a]);
}
int main(){
int b,c,d,e,f,g,sum;
sum=0;
cin>>b>>c>>d;
f=b;
g=c;
for(int a=b;a<=c;a++){
if(sp(a)==0){
t[a]=-1;
sum++;continue;
}
t[a]=a;
}
for(int r=b;r<=c;r++)
for(int a=r+1;a<=c;a++){
if(t[a]==-1||t[r]==-1)
continue;
if(sb(r,a)>=d)
t[find(a)]=find(r);
}
for(int i=f;i<=g;i++){
h[t[i]]=1;a
}
for(int a=f;a<=g;a++){
if(h[a]==1)
sum++;
}
cout<<sum;
}
by Priori_Incantatem @ 2019-06-27 17:54:48
@枫月雨凌 然而为什么要这么麻烦呢
并查集不是二十多行就搞定了吗
by 枫月雨凌 @ 2019-06-29 08:15:49
@_Wolverine 发错地方了QAQ
by 枫月雨凌 @ 2019-06-29 08:19:33
@_Wolverine 是这个题目
求大佬救命