这题有没有人能给个优雅点的code?
回复 11楼 Devil_W
这个我没写出来。不过我在另一个论坛里也发了同样的帖子,有人回了代码。我贴出来给大家看看……如下:
程序代码:#include<stdio.h>
#include<math.h>
#define N 20
bool Prime(int n)
{
int k = (int)sqrt(n);
for(int i = 2; i <= k; i ++)
{
if(n % i == 0)
{
return false;
}
}
return true;
}
bool Check(int a[], int n, int i)
{
for(int j = 0; j < n; j ++)
{
if(a[j] == i)
{
return false;
}
}
if(n < N-1)
{
return (Prime(a[n-1]+i));
}
else
{
return (Prime(a[0]+i) && Prime(a[n-1]+i));
}
}
void PrimeCircle(int a[], int n)
{
for(int i = 1; i <= N; i ++)
{
if(Check(a,n,i))
{
a[n] = i;
if(n == N-1)
{
for(int j = 0; j < N; j ++)
{
printf("%d ", a[j]);
}
printf("\n");
}
else
{
PrimeCircle(a, n+1);
}
a[n] = 0;
}
}
}
int main()
{
int a[N];
PrimeCircle(a, 0);
return 0;
}









