1 条题解
-
0
Java :
import java.util.Scanner; public class Main { static int n; static int[] a = new int[50]; static boolean[] vis = new boolean[50]; static boolean[] isp = new boolean[50]; public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNextInt()) { n = in.nextInt(); a[0] = 1; for (int i = 2; i <= n * 2; i++) isp[i] = isPrime(i); dfs(1); } } public static void dfs(int cur) { if (cur == n && isp[a[n - 1] + a[0]]) { for (int i = 0; i < n; i++) { if (i == n - 1) System.out.println(a[i]); else System.out.print(a[i] + " "); } } else { for (int i = 2; i <= n; i++) { if (!vis[i] && isp[i + a[cur - 1]]) { a[cur] = i; vis[i] = true; dfs(cur + 1); vis[i] = false; } } } } public static boolean isPrime(int n) { if (n < 2) return false; for (int j = 2; j * j <= n; j++) if (n % j == 0) return false; return true; } }
- 1
信息
- ID
- 1332
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者