WA96pts!(玄关)
查看原帖
WA96pts!(玄关)
665772
Haoyue_06432楼主2023/8/28 18:46

已经改了很多次了,很多hack都过的了就是错第四个点,求助大佬qwq

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t,n,a[5000005],z[500005],k;
bool b[5000005],bj;
map<ll,bool> c;
void inti()
{
	for(int i=2;i<=20000;i++)
	{
		if(b[i]==0)
		{
			z[++k]=i;
			for(int j=i+i;j<=100005;j+=i)
				b[j]=true;
		}
	}
}
int main()
{
	cin>>t;
	inti();
	for(int i=1;i<=t;i++)
	{
		cin>>n;
		for(int j=1;j<=n;j++)cin>>a[j];
		if(n==2)cout<<"Yes"<<endl;
		else
		{
			for(int j=1;j<=n;j++)
			{
				for(int l=1;z[l]*z[l]<=a[j];l++)
				{
					if(a[j]%z[l]==0)
					{
						if(!c[z[l]])c[z[l]]=true;
						else 
						{
							bj=true;
							break;
						}
						if(!c[a[j]/z[l]])c[a[j]/z[l]]=true;
						else 
						{
							bj=true;
							break;
						}
					}
				}
				if(!c[a[j]])c[a[j]]=true;
				else bj=true;
				if(bj==true)break;
			}
			if(bj==true)
			{
				cout<<"No"<<endl;
				bj=false;
			}
			else cout<<"Yes"<<endl;
		}
		c.clear();
	}
	return 0;
}
2023/8/28 18:46
加载中...