My issue
print first n/2 ptime number twice
My code
#include <bits/stdc++.h>
using namespace std;
void accept_ho_ja(vector<int>& prime, int size){
int n;
cin>>n;
if(n&1) cout<<1<<" ";
if(n>1){
for(int i=0; i<n/2; i++){
cout<<prime[i]<<" "<<prime[i]<<" ";
}
}
cout<<endl;
}
int main() {
int t;
int size=2*10000+1;
vector<int> sieve(size,1);
sieve[0]=sieve[1]=0;
vector<int> prime;
for(int i=2; i*i<size; i++){
if(sieve[i]){
for(int j=i*i; j<size; j+=i) sieve[j]=0;
}
}
for(int i=2; i<size; i++){
if(sieve[i]) prime.emplace_back(i);
}
cin>>t;
while(t--) accept_ho_ja(prime,size);
}
Problem Link: Frequal Practice Coding Problem