2 条题解

  • -3
    @ 2022-10-5 15:42:00
    #include<bits/stdc++.h>
    using namespace std;
    int db[1000],book[1000],n,sum;
    int pd(int pd){
    	for(int i=2;i<pd;i++){
    		if(pd%i==0)return 1;
    	}
    	return 0;
    }
    void dg(int x){
    	if(x>n){
    		sum++;
    		cout<<sum<<":";
    		for(int i=1;i<=n;i++)cout<<book[i]<<" ";
    		cout<<endl;
    		return;
    	}
    	for(int i=1;i<=n;i++){
    		if(db[i]>0)continue;
    		else if(pd(i+book[x-1])==1&&x!=1)continue;
    		else if(pd(i+book[1])==1&&x==n)continue;
    		else{
    			db[i]=1;
    			book[x]=i;
    			dg(x+1);
    			db[i]=0;
    			book[x]=0;
    		}
    	}
    }
    int main(){
    	cin>>n;
    	dg(1);
    	cout<<"total:"<<sum;
    	return 0;
    }
    

    信息

    ID
    355
    时间
    1000ms
    内存
    128MiB
    难度
    4
    标签
    递交数
    57
    已通过
    25
    上传者