还好这题数据不大,数据较大的话就不会处理了
暴力搜索,输入一个数,遍历每一个容器的数字,判断是否互质
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
#include<stack>
#include<algorithm>
#include<vector>
#include<map>
#include<vector>
using namespace std;
vector<int> v[10000];
int cnt=0;
int pd(int x,int y){
int minn=min(x,y);
for(int i=minn;i>=2;i--){
if(x%i==0&&y%i==0) return 0;
}
return 1;
}
int main(){
int n;
cin>>n;
int num;
cin>>num;
v[cnt++].push_back(num);
for(int i=1;i<n;i++){
cin>>num;
int flag=0;
for(int j=0;j<cnt;j++){
int k;
for(k=0;k<v[j].size();k++){
if(pd(v[j][k],num)==0){
break;
}
}
if(k==v[j].size()){
v[j].push_back(num);
flag=1;
break;
}
}
if(flag==0){
v[cnt++].push_back(num);
}
}
cout<<cnt<<endl;
/*for(int i=0;i<cnt;i++){
for(int j=0;j<v[i].size();j++) cout<<v[i][j]<<" ";
cout<<endl;
}*/
return 0;
}