传送门 代码: #include<stdio.h> #define _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) bool isprime(int n) { for (int i = 2; i * i <= n; i++) { if (n % i == 0)return false; } return true; } int a[30],b[30]; int n, m = 1; void DFS(int f,int step) { if (step == n + 1 && isprime(a[1] + a[n])) { for (int i = 1; i < n; i++) { printf("%d ", a[i]); } printf("%d\n", a[n]); return; } for (int i = 2; i <= n; i++) { if (b[i] == 0 && isprime(i + f)) { a[step] = i; b[i] = 1; DFS(i, step + 1); b[i] = 0; } } } int main() { while (~scanf("%d", &n)) { printf("Case %d:\n", m); b[1] = 1; a[1] = 1; DFS(1, 2); m++; printf("\n"); } }