10015Posted By: Asif NaeemPosted On: July 10, 2014 Default #include <iostream> #include <vector> #include <stdio.h> using namespace std; int prime[40001]; vector<int> vb,v; int _p(int n) { int pos=0; v.clear(); for(int i=1;i<=n;i++) v.push_back(i); for(int i=0;i<n-1;i++) { int k=vb[i]; int l = k%v.size()-1; if(l+pos>(v.size()-1)) { pos=l+pos-v.size(); } else pos = l+pos; v.erase(v.begin()+pos); } cout<<v[0]<<"\n"; v.clear(); return 0; } int main() { int n; for(int i=2;i*i<40000;i++) { if(prime[i]==0) { for(int j=i*i;j<40000;j+=i) prime[j]=1; } } for(int i=2;i<40000;i++) { if(prime[i]==0) vb.push_back(i); } while(cin>>n) { if(n==0) break; if(n>=1 && n<=3) { cout<<1<<"\n"; continue; } _p(n); } return 0; } /* int _p(int n) { int lastpos=0; int cnt=n; int f=0; for(int i=0;i<n;i++) { int k=vb[i]; if(cnt==1) { f=1; break; } while(k) { if(lastpos>=n) lastpos=0; for(int l=lastpos+1;l<=n;l++) { if(arr[l]==0) { k-=1; if(k==0) { cnt-=1; arr[l]=1; lastpos=l; if(l==n) lastpos=0; break; } } if(l==n) { lastpos=0; break; } } } if(f) break; } for(int i=1;i<=n;i++) { if(arr[i]==0) { cout<<i<<"\n"; save[n]=i; break; } } return 0; } */ 1