本蒟蒻的TLE代码,请求指正:
#include<iostream>
#include<cstdio>
#include<vector>
#include<set>
using namespace std;
const int N=1e6+7;
vector<int>primes;
int n,a[N];
set<int>sum;
void oula(){
bool isPrime[N];
for(int i=2;i<=N;i++)
isPrime[i]=1;
for(int i=2;i<=N;i++){
if(isPrime[i])primes.push_back(i);
for(int j=0;j<primes.size();j++){
int p=primes[j];
if(i*p>n)break;
isPrime[i*p]=0;
if(i%p==0)break;
}
}
}int main(){
oula();
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++){
for(int j=0;j<primes.size();j++){
while(a[i]%primes[j]==0){
sum.insert(primes[j]);
a[i]/=primes[j];
}
}if(sum.size()==2)cout<<"1\n";
else cout<<"0\n";
sum.clear();
}return 0;
}
请各位大佬帮我看一下,十分感谢!!!