C++
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
// n=1,2 无解
if (n==1 || n==2) {
cout << -1;
return 0;
}
vector<int> a;
// ai+i 不是质数
// 令 ai=i 且 n奇 a[1]=n a[n]=1 n偶 a[1]=3 a[3]=1 -- 其实n奇只交换1、3也可
// n=3 [3,2,1] ok
// n=4 [3,2,1,4] ok
// n=5 [5,2,3,4,1] ok
// n=6 [3,2,1,4,5,6] ok
if (n%2) {
cout << n << ' ';
for (int i=1; i<n-1; i++) {
cout << i+1 << ' ';
}
cout << 1 << ' ';
} else {
cout << 3 << ' ';
for (int i=1; i<n; i++) {
if (i==2) cout << 1 << ' ';
else cout << i+1 << ' ';
}
}
}
// 64 位输出请用 printf("%lld")



京公网安备 11010502036488号