比赛 板子大赛 评测结果 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;
}