#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int prime(int n){ if(n==1) return 0; else{ int flag=0; for(int i=2; i<=n/2; ++i) { if(n%i==0) { flag=1; break; } } if (flag==0) return 1; else return 0; } } int main(){ int t; cin >> t; for(int test = 0; test < t; test++){ int n; cin >> n; set num; for(int i=1; i<=n; i++) num.insert(i); int turn =1; set::iterator it, it1; label: for (it=num.begin(); it!=num.end(); it++){ if(prime(*it)==1) { // cout<<"prime is found "<<(*it)<<"-->"; turn++; int i=1; while(((*it)*i) <=n){ // cout<<((*it)*i)<<" "; num.erase((*it)*i); i++; } // cout<<"remaining set is:"; //for (it1=num.begin(); it1!=num.end(); it++) // cout<<(*it1)<<" "; //cout<