版权声明:转载请附上原文链接哟! https://blog.csdn.net/weixin_44170305/article/details/89849974
如花美眷,似水流年,回得了过去,回不了当初。
告诉你们不要填太大的数哟(1~10就行)
10的素数环个数为4872个呢!一般到14程序就运行的很慢了。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<string>
#include<map>
#include<algorithm>
#include<iomanip>
#include<queue>
#include<set>
#include<stack>
using namespace std;
bool b[101]={0};
int n,sum=0,a[101]={0};
bool pd(int x,int y)
{
int e=x+y;
for(int k=2;k<sqrt(e);k++)
if(e%k==0)
return 0;
return 1;
}
int print()
{
sum++;
printf("<%d> ",sum);
for(int j=1;j<=n;j++)
printf("%d ",a[j]);
printf("\n");
}
int search(int t)
{
for(int i=1;i<=n;i++)
{
if(pd(a[t-1],i)&&(!b[i]))
{
a[t]=i;
b[i]=1;
if(t==n)
{
if(pd(a[n],a[1]))
print();
}
else search(t+1);
b[i]=0;
}
}
}
int main()
{
freopen("ssh.out","w",stdout);
scanf("%d",&n);
search(1);
printf("共能组成%d个素数环\n",sum);
fclose(stdout);
}