问题: 1~20排列成一个圈,使俩俩相近的和为素数。
陷入尴尬了,判断素数会,不知该如何对这20 个数 连续调用 排序, 还望大神可以指导 我这一小菜鸟。 ps:下面是我打的一个小程序,可以忽视哦。
#include
int fun();
int main()
{
int i, k, count = 0, j = 0, n = 1, m = 0, a[20], b[20];
for (i = 1; i <= 20; i++)
a[i - 1] = i;
b[0] = a[0];
for ( i = 1; i < 20; i++, k++ ) // 从这就尴尬了 。。
if ( i != j && fun( a[i] + a[j] ) == 1 )
{
b[k] = a[j];
j = i;
count++;
}
printf("\n");
}
int fun( int x )
{
int n, count;
count = 0;
for ( n = 1; n <= x / 2; n++ )
{
if ( x % n == 0 )
count++;
}
if ( count == 1 )
return 1;
else
return 0;
}