#include
#include
using namespace std;
vector prime_sieve(int *p,int n)
{
p[2]=1;
p[0]=p[1]=0;
vector<int> primes;
for(int i=3;i<=n;i=i+2)
p[i]=1;
for(int i=3;i<=n;i=i+2)
{
if(p[i]==1)
{
for(int j=i*i;j<=n;j=j+i)
p[j]=0;
}
}
for(int i=3;i<=n;i=i+2)
{
if(p[i]==1)
primes.push_back(i);
}
return primes;
}
vector factorize(vector &primes,int no)
{
vector factors(no,0);
int i=2;
while(i*i<=no)
{
if(no/i==0)
{
factors.push_back(i);
no=no/i;
}
else
i++;
}
if(i!=1)
factors.push_back(no);
return factors;
}
int main()
{
int n;
cin>>n;
int *p=new int[n];
p[0]={0};
vector<int> primes=prime_sieve(p,n);
int t;
cin>>t;
while(t--)
{
int no;
cin>>no;
vector<int> factors=factorize(primes,no);
for(int i=0;i<factors.size();i++)
{
cout<<factors[i]<<" ";
}
}
}
can u plz rectify my code