WA on #2 求条
查看原帖
WA on #2 求条
1068500
matrixPower楼主2024/8/13 11:06

以下是蒟蒻的代码:

#include<bits/stdc++.h>
#define endl '\n'
#define lowbit(x) x&(-x)
#define small priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>
using namespace std;

typedef double db;
typedef long long ll;
typedef __int128 III;
const db eqs=1e-6;
const int inf=1e9;
void ll_cmax(ll &a,ll b){a=a>b?a:b;}
void ll_cmin(ll &a,ll b){a=a<b?a:b;}
void int_cmax(int &a,int b){a=a>b?a:b;}
void int_cmin(int &a,int b){a=a<b?a:b;}
bool db_eq(db a,db b){return fabs(a-b)<eqs;}
bool number(char ch){return ch>='0' && ch<='9';}
bool minuscule(char ch){return ch>='a' && ch<='z';}
int sqlong(int n){int sq=sqrt(n)+1;return min(sq,n);}

const int MAXN=1000000+5;
int cnt[MAXN],n; 
bitset<MAXN>a;
vector<int>x;

void FilterPrimeNumbers(int n)
{
	a[0]=a[1]=1;
	for(int i=2;i<=n;i++)
	{
		if(!a[i]) x.push_back(i);
		for(int j=0;j<x.size();j++)
		{
			if(i*x[j]>n) break;
			a[i*x[j]]=1;
			if(i%x[j]==0) break;
		}
	}
}

void DecomposePrimeFactor(int x)
{
	for(int i=1;i*i<=x;i++) 
	{
		if(!a[i] && x%i==0)
		{
			while(x%i==0) x/=i; 
			cnt[i]++;
			if(x==1) break;
		}
	} 
	if(x!=1) cnt[x]++;
} 

int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	FilterPrimeNumbers(1000000);
	cin>>n;
	int x;
	for(int i=1;i<=n;i++)
	{
		cin>>x;
		DecomposePrimeFactor(x);
	}
	int maxn=0;
	for(int i=1;i<=1000000;i++) 
	{
		int_cmax(maxn,cnt[i]);
	}
//	cout<<maxn<<endl;
	if(maxn==1) cout<<"pairwise coprime\n";
	else if(maxn==n) cout<<"not coprime\n";
	else cout<<"setwise coprime\n";
	return 0;
}

2024/8/13 11:06
加载中...