1 条题解

  • 0
    @ 2025-4-12 21:33:54

    C++ :

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<cstring>
    #include<cmath> 
    using namespace std;
    int b[20]={0},a[20],sum=0;
    int i,m,n,j,k;
    int pd (int m)
    {
     int i;
     for (i=2;i<=floor(sqrt(m));++i)
      if (m%i==0) return 0;
     return 1;
    }
    int pl (int s)
    {
     int i,j;
     for (i=2;i<=n;++i)
      if ((b[i]==0)&&(pd(i+a[s-1])==1))
      {
      	a[s]=i;
      	b[i]=1;
      	if (s==n)
    	 {
    	  if (pd(a[20]+a[1])==1) 
    	  {
    	  sum+=1;if (sum>1) cout<<endl;
      	  for (j=1;j<=n;++j)
      	   if (j==1) cout<<a[j];
      	    else cout<<" "<<a[j]; 
      	  }
    	 }
      	else pl(s+1);
      	b[i]=0;
      }
    }
    int main ()
    {
     cin>>n;
     a[1]=1;
     pl(2);
     return 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
    779
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者