#include<bits/stdc++.h> #define int long long usingnamespace std; int n, ans, a[1001], d[1001]; boolcheck(int x){//判断素数 if (x == 1) returntrue; for (int i = 2; i * i <= x; i ++ ) if (x % i == 0) returntrue; returnfalse; } voiddfs(int x){ if (x > n) {//x>n时,表示有一个序列达成要求,ans++ ans ++ ; return; } for (int i = 1; i <= n; i ++ ) if (!d[i]) {//判断数字有没有被用,如果被用,进行下一项 d[i] = 1;//将数字标记为已用 if (x == 1 || check(i + a[x - 1])) {//判断相邻是不是素数 a[x] = i;//符合条件的话进行添加 dfs(x + 1); } d[i] = 0; } } signedmain(){ cin >> n; dfs(1); cout << ans; }