7-4素数环 uva 524

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std; int ans[];
int vis[]; bool issushu(int n)
{
for(int i=;i<=sqrt(n);i++)
{
if(n%i==)return false;
}
return true;
}
void dfs(int n,int cur)
{
if(cur==n&& issushu(+ans[cur-] ) )
{
for(int i=;i<n;i++)
if(i==)printf("%d",ans[i]);
else printf(" %d",ans[i]);
printf("\n");
} for(int i=;i<=n;i++)
{
if( !vis[i] && issushu(i+ans[cur-]) )
{
ans[cur]=i;
vis[i]=;
dfs(n,cur+);
vis[i]=;//一定要取消标记 不然肯错(肯定)
}
}
}
int main()
{ int n;int cas=;
while(scanf("%d",&n)==)
{ if(cas!=)cout<<endl;
memset(ans,,sizeof(ans));
memset(vis,,sizeof(vis));
ans[]=;
printf("Case %d:\n",++cas);
dfs(n,); }
}
上一篇:暴力求解——素环数 Prime Ring Problem ,UVa 524


下一篇:PHP截取中英文字符串