1 条题解
-
0
稍微改改即可。
#include <bits/stdc++.h> using namespace std; int n,cnt; int a[21]; bool vis[21]; bool prime(int x){ for (int i=2;i*i<=x;i++){ if (x%i==0){ return 0; } } return 1; } void dfs(int i,int p){ for (int j=2;j<=n;j++){ if (!vis[j]&&prime(j+p)){ vis[j]=1; a[i]=j; if (i==n){ if (prime(j+1)){ cnt++; for (int i=1;i<=n;i++){ cout<<a[i]<<' '; } cout<<endl; vis[j]=0; if (cnt==10){//只需输出前10个 exit(0); } return; } } dfs(i+1,j); vis[j]=0; } } } int main(){ cin>>n; if (n%2){//如果n为奇数则不可能有素数环(如果不加会在输入19时TLE) return 0; } a[1]=1; dfs(2,1); return 0; }
- 1
信息
- ID
- 436
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 53
- 已通过
- 28
- 上传者