TLE求助
查看原帖
TLE求助
1036965
bjqxszx_zhuzixuan楼主2024/5/5 22:08
#include<bits/stdc++.h>
using namespace std;
int t,a[100111],n,k=1,vis[10111];
bool book[1001];
bool isp(int num,int num1)
{
	int g=num+num1;
	if(g==1)return 0;
	if(g==2)return 1;
	for(int i=2;i*i<g;i++)
	{
		if(g%i==0)
		return 0;
	}
	return 1;
}
void dfs(int step)
{
	if(step>n&&isp(vis[1],vis[n]))
    {
    	cout<<1<<" ";
    	for(int i=2;i<=n;i++)
    	cout<<vis[i]<<" ";
    	cout<<endl;
    	return ;
	}
	if(step<=n)return;
	for(int i=2;i<=n;i++)
	{
		if(!book[i]&&isp(i,vis[step-1]))
		{
			vis[step]=i;
			book[i]=1;
			dfs(step+1);
			book[i]=0;
		}
	}
}
int main()
{
	
	while(scanf("%d",&n))
    {
	    vis[1]=1;
       if(k)cout<<endl;
	    cout<<"Case "<<k++<<":"<<endl;
	    dfs(2);
	}
}
2024/5/5 22:08
加载中...