#include using namespace std;typedef long long ll;const int N = 1e7+5;int p[N],oa[N];bool vis[N];int oula(int n){ memset(vis,0,sizeof(vis)); oa[1]=1; int cnt=1; for(int i=2;i<=n;i++) { if(!vis[i]) { p[cnt++]=i; oa[i]=i-1; } for(int j=1;j <=n;j++) { vis[i*p[j]] = 1; if(i%p[j]==0) { oa[i*p[j]]=oa[i]*p[j];//该合数的所有质因子p[j]出现了两次以上 break;//若prime[j]在这个合数里出现了不止一次(i%prime[j]=0), //也就是这个合数的所有质因子都在i里出现过 } oa[i*p[j]]=oa[i]*(p[j]-1); } } return cnt-1; } int main() { int n; while(cin>>n) { int al=oula(n); for(int i=1;i<=al;i++) cout< <<" \n"[i==al]; for(int i=1;i<=n;i++) cout< <<" \n"[i==n]; } return 0; }