将1到20这20个数排成一排,使得相邻的两个数之和为一个素数,且首尾两数字之和也为一个素数。(用C语言编写
来源:百度知道 编辑:UC知道 时间:2024/06/08 19:08:13
请在程序下 附上流程图或者 写出你的思路 万分感激!!
满足条件的组数太多,随便找几组
1 2 3 4 7 6 11 20 17 12 19 18 13 10 9 8 5 14 15 16
1 2 3 4 7 6 11 20 17 12 19 18 13 10 9 14 5 8 15 16
1 2 3 4 7 6 11 20 17 12 19 18 13 16 15 8 5 14 9 10
1 2 3 4 7 6 11 20 17 12 19 18 13 16 15 14 5 8 9 10
1 2 3 4 7 6 11 20 17 14 5 12 19 10 9 8 15 16 13 18
1 2 3 4 7 6 11 20 17 14 5 12 19 18 13 10 9 8 15 16
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int Num[20], WaitList[20];
int arrPrime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37};
int isPrime(int n)
{
int i;
for (i = 0; i < 12; i++)
{
if (n == arrPrime[i])
{
return 1;
}
}
return 0;
}
void Insert(int Pos)
{
int i, j;
for (i = Num[Pos - 1] % 2; i < 20; i += 2)
{
if (WaitList[i] != 0)
{
if (isPrime(Num[Pos - 1] + WaitList[i]))