TLE求调 有关注
查看原帖
TLE求调 有关注
850062
zzxzczyz楼主2024/5/25 11:04
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int t,a,b,k,c[1000005],d[1000005],cnt1,cnt2;
int main(){
	cin>>t;
	while(t--){
		scanf("%d%d%d",&a,&b,&k);
		int aa=a,aaa=a;
		cnt1=cnt2=0;
		memset(c,0,sizeof(c));
		memset(d,0,sizeof(d));
		if(a==2){
			c[++cnt1]=2;
		}
		if(b==2){
			d[++cnt2]=2;
		}
		for(int i=2;i<=sqrt(aa);i++){
			while(aa%i==0){
				c[++cnt1]=i;
				aa/=i;
			}
		}
		int bb=b,bbb=b;
		for(int i=2;i<=sqrt(bb);i++){
			while(bb%i==0){
				d[++cnt2]=i;
				bb/=i;
			}
		}
//		cout<<cnt1;
//		cout<<endl;
//		for(int i=1;i<=cnt1;i++){
//			cout<<c[i]<<" ";
//		}
//		cout<<endl;
//		for(int i=1;i<=cnt2;i++){
//			cout<<d[i]<<" ";
//		}
//		cout<<endl;
		int xiang=0;
		int ii=1,jj=1;
		while(ii<=cnt1&&jj<=cnt2){
			if(c[ii]==d[jj]){
				xiang++;
				ii++;
				jj++;
			}
			else{
				if(c[ii]<d[jj]){
					ii++;
				}
				else{
					jj++;
				}
			}
		}
		if(a==b&&k==1){
			printf("No\n");
			continue;
		}
		if(k<=cnt1+cnt2-xiang){
			printf("Yes\n");
		}
		else{
			printf("No\n");
		}
	}
	return 0;
}
2024/5/25 11:04
加载中...