c语言素数环问题实例讲解。c语言回溯算法应用。问题描述:将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环。

n=20时,下面的序列就是一个素数环:

1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 20 11 12 19 18

下面的程序利用回溯法穷举所有可能性,试图找到一个解。既然是环,第一个位置可以随意取一个数值(好象设置为1比其它数计算起来都要快,不信你把程序中的 ring[0] 设置为18计算一下。另外n好象只是偶数的时候才存在素数环)。这个问题应该还有很多种解法,和递归、图的 DFS 搜索、哈密顿环都有关系。我的问题是,能否写出一个比较高效的算法计算出对于任意n的全部素数环序列?

#include

#include

#define LEN 20

int primeRing(int ring[], int b[], int n);

int isPrime(int n);

int main(void)

{

int i, ring[LEN]={0}, b[LEN]={0};

ring[0] = 1;

b[0] = 1;

if( primeRing(ring, b, 1) )

{

printf(“\n\nThe prime ring is : “);

for(i=0; i

printf(“%d “, ring[i]);

printf(“\n”);

}

else

printf(“\n\nNot found!\n”);

return 0;

}

int primeRing(int ring[], int b[], int n)

{

int i;

if( n==LEN )

return isPrime(ring[n-1]+ring[0]);

printf(“\nCalculating ring[%d] = “, n);

for(i=1; i

if( b[i]==0 && isPrime((i+1)+ring[n-1]) )

{

b[i] = 1;

ring[n] = i+1;

printf(“%d “, ring[n]);

if( primeRing(ring, b, n+1) )

return 1;

else

b[i] = 0;

}

return 0;

}

int isPrime(int n)

{

int i, t, f=1;

t = sqrt(n);

for(i=2; i<=t; i++)

if( n%i==0 )

{

f = 0;

break;

}

return f;

}

c语言素数环实验报告,c语言素数环问题实例讲解相关推荐

  1. 拼图游戏C语言课设实验报告,C语言拼图游戏实验报告.doc

    C语言拼图游戏实验报告 课程设计实验报告 班级:光电104-2 姓名:刘云龙 学号:201058501220 一.实验题目:使用C语言编写一个小游戏(拼图游戏) 二.实验目的:C语言是每一个通信学生的 ...

  2. c语言选择循环实验报告,C语言程序设计实验报告选择与循环结构程序设计.doc

    C语言程序设计实验报告选择与循环结构程序设计.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的 ...

  3. c语言程序设计数组实验报告,c语言程序设计实验报告(数组).doc

    c语言程序设计实验报告(数组).doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3 ...

  4. c语言对分查找实验报告,C语言实验指导.doc

    C语言实验指导.doc C语言实验指导(要求认真填写实验报告中的各项内容,不得空白或填写未发现问题)实验一 顺序结构程序设计实验二 选择结构程序设计实验三 循环结构程序设计实验四 一维数组及其应用实验 ...

  5. c语言des算法实验报告,C语言实现DES算法实验报告解析.doc

    C语言实现DES算法实验报告解析 xx工程大学 实验报告 (2015-2016学年第一学期) 报告题目: DES加密算法 课程名称: 密码学B 任课教员: 专 业: 学 号: 姓 名: 二O一六年一月 ...

  6. c语言学籍管理实验报告,c语言实验报告(学生学籍管理系统)

    c语言实验报告(学生学籍管理系统) (20页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 实实 验验 报报 告告学学 生生 学学 籍籍 ...

  7. c语言综合合计实验报告,C语言设计实验报告(第一次)

    C程序设计实验报告 实验项目:PPT实验:1.3.2:1.3.3:1.3.4:2.3.1:2.3.2 姓名:  龚政  实验地点:家   实验时间:2020.02.25 一.实验目的与要求 1.实验目 ...

  8. c语言des算法实验报告,c语言实现des算法des加密算法实验报告

    c语言实现des算法des加密算法实验报告 (23页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 xx 工程大学工程大学实验报告实验报告 ...

  9. 《c语言程序设计》实验报告,C语言程序设计实验实验报告_wenkub

    C语言程序设计实验实验报告_wenkub 2020-08-30 16:30:07 [导读]综合使用基本结构.基本算法.函数.指针.结构体.链表等知识设计程序.需要复习课本以前所学内容,浏览上课讲解的相 ...

  10. c语言程序设计数组实验报告,(C语言程序设计实验报告数组.doc

    (C语言程序设计实验报告数组 <C语言程序设计 >课程实验报告 实验名称 学 号_ 姓 名 ___ 班 别 实验日期: 年月日 实验报告日期: 年月日 指导老师: 实验地点: 成 绩: 评 ...

最新文章

  1. 服务器拒绝连接(The remote system refused the connection.)
  2. GenXus学习笔记——Transaction的建立
  3. 3997: [TJOI2015]组合数学
  4. Vivado工程文件分类
  5. SuperSet连接Hive失败(客户端报日志拒绝连接)
  6. EasyMock 简介
  7. 数组insert_算法题——[leetcode1675]最小化数组差
  8. Swift之类型转换
  9. 继腾讯、阿里、字节、快手等后,京东、有赞又爆大裁员,个别部门比例或达40%!...
  10. Trick(十四)—— 判断是否序列中所有的元素都相同
  11. c# 获取docx中的内容
  12. .NET中代理服务器WebProxy的各种用法
  13. spss之数据预处理
  14. 【Linux operation 07】 - SUSE 12 SP5系统挂载硬盘
  15. 大概都能懂的Eviews教程:二(转载)
  16. 错误 bpbrm(PID=7552) 从客户端 - Script exited with status = 1 the requested operat
  17. P,AP, MAP,MRR。几种分类器评价指标
  18. 我去,脸皮厚啊,你竟然使用==比较浮点数?
  19. 创维,彩电业的“技术咖”,能否赢得下一个十年?
  20. linux音频服务器,在Ubuntu Linux上配置MPD音乐服务器

热门文章

  1. VSCode改变字体颜色
  2. python提供了两个对象身份比较操作符是_python 对象
  3. java实现导出excel表_Java导出网页表格Excel过程详解
  4. 简练软考知识点整理-中国制造2025
  5. 现代操作系统 第三章 内存管理 习题
  6. 现代操作系统读书笔记
  7. windows游戏编程 (一) 了解WinMain函数,创建一个信息框
  8. 一看就懂的字符串匹配算法 之 BF算法(暴力匹配)
  9. 小榕密码管家xp 绿色
  10. Java下载文件,中文文件名乱码问题解决