[C] 纯文本查看 复制代码 #include<bits/stdc++.h>
using namespace std;
int b[21];
int a[21];
int r;
int n,cnt;
bool sushu(int n)
{
for(int i=2;i<n;i++)
{
if(n%i==0)
{
return false;
}
}
return true;
}
void display(int a[],int n)
{
for(int i=1;i<=n;i++)
{
cout<<a[i]<<' ';
}
}
void search1(int n,int m)
{
for(int i=2;i<=m;i++)
{
if(b[i]==0&&sushu(a[n-1]+i))
{
a[n]=i;
b[i]=1;
if(n==m&&sushu(a[n]+1))
{
display(a,n);
cout<<endl;
b[i]=0;
}
else
{
search1(n+1,m);
b[i]=0;
}
}
}
}
void sushuhuan()//素数环
{
cin>>n;
a[1]=1;
b[1]=1;
search1(2,n);
}
void search2(int k)
{
for(int i=1;i<=n;i++)
{
if(b[i]==0)
{
a[k]=i;
b[i]=1;
if(k==r)
{
display(a,r);
cnt++;
cout<<endl;
b[i]=0;
}
else
{
search2(k+1);
b[i]=0;
}
}
}
}
void pailie()//排列
{
cin>>n>>r;
search2(1);
cout<<cnt;
}
|