提交时间:2024-10-07 14:57:58

运行 ID: 33332

#include<bits/stdc++.h> using namespace std; int t,n; bool chain(int k){ int lk=k; int llk =0; int cnt = 0; int ans=0; while(k!=1){ bool flag = 0; for(int i = 2;(i-1)*(i-1)<=lk;i++){ if(k%i==0){ if(i!=ans&&ans!=0)return 1; ans=k; k/=i; cnt++; flag = 1; break; } } if(k==lk)return 0; if(!flag)return 1; } return 0; } bool prime(int n) { if(n==1)return 0; for(int i =2 ;i*i<=n;i++){ if(n%i==0) return 0; } return 1; } int main(){ //freopen("lcm.in","r",stdin); //freopen("lcm.out","w",stdout); cin>>t; while(t--){ cin>>n; if(n==4){ cout<<"No"<<endl; continue; } if(int(sqrt(n))*int(sqrt(n))==n&&prime(int(sqrt(n)))){ cout<<"No"<<endl; continue; } if(chain(n)){ cout<<"Yes"<<endl; } else{ cout<<"No"<<endl; } } }