这题有没有人能给个优雅点的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;
}										
					
	
 
											






 
	     
											

