| 比赛 | 
    板子大赛 | 
    评测结果 | 
    RRRRR | 
    | 题目名称 | 
    数列问题 | 
    最终得分 | 
    0 | 
    | 用户昵称 | 
    李奇文 | 
    运行时间 | 
    1.059 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    3.04 MiB  | 
    | 提交时间 | 
    2025-01-22 17:19:47 | 
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,ans,a[16];
bool mp[16];
bool isp(int u){
	if(u<=1) return false;
	if(u==2) return true;
	for(int i=2;i*i<=u;i++){
		if(u%i==0) return false;
	}
	return true;
}
void dfs(int x){
	if(x==n){
		for(int i=1;i<=n;i++){
			if(mp[i]&&isp(a[x-1]+i)){
				a[x]=i;
				mp[i]=1;
				ans++;
				for(int j=1;j<=n;j++){
					std::cout<<a[j]<<" ";
				}
				mp[i]=0;
				std::cout<<endl;
			}
		}
		return;
	}
	for(int i=1;i<=n;i++){
		if(mp[i]&&isp(a[x-1]+i)){
			a[x]=i;
			mp[i]=1;
			dfs(x++);
			a[x]=0;
			mp[i]=0;
		}
	}
	return;
}
int main(){
	std::cin>>n;
	for(int i=1;i<=n;i++){
		a[1]=i;
		mp[i]=0;
		dfs(2);
		a[1]=0;
		mp[i]=1;
	}
	std::cout<<ans;
	return 0;
}