质数环问题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
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 素数 素数即质数,指在大于1的自然数中,除了1和此整数自身外无法被其它自然数整除的数. 1.1 试除法 该方法用于验证一个数是否为素数.例求x是否为素数,只需要验证1到中是否存在一个数位x的约数, ...
- java编程实现素数环_回溯法解决素数环
#include #include using namespace std;#define N 100000int isp[2 * N];int a[N];int visited[N];int is_ ...
- 素数环 与 算法 全排列
在说起全排列前,先说一下昨天碰到的一个题目(答案不是我做出来的,但是我感觉有好多个亮点,贴出来方便日后的学习): 素数环 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 ...
- 美丽的项链(素数环)(回溯法)
题目描述 520马上就要到了,丁丁妹在思考送自己的室友什么礼物能够彰显她深深的室友之爱. 由于丁丁妹最近沉迷于数学,于是她想出了一个绝(土)妙(味)的礼物--素数项链. 具体而言,素数项链是一个由1~ ...
- 素数环问题 DFS
素数环问题 将从1到n这n个整数围成一个圆环, 若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环. 现要求输入一个n,求n个数围成一圈有多少种素数环, 规定第一个数字是1.写出相应的 ...
- 素数环问题(回溯法)
素数环是一个计算机程序问题,指的是将从1到n这n个整数围成一个圆环,若其中任意2个相邻的数字相加,结果均为素数,那么这个环就成为素数环. 现在要求输入一个n,求n个数围成一圈有多少种素数环,规定第一个 ...
- 素数环问题---深度搜索遍历
1264: 素数环 时间限制: 1 Sec 内存限制: 128 MB 提交: 29 解决: 8 [提交][状态][讨论版] 题目描述 有一个长度为n的环形序列由1,2,3,...,n组成,环中相邻 ...
- C语言素数分解prime factoriziation算法(附完整源码)
素数分解prime factoriziation算法 素数相关结构体定义 实现了以下相关接口 C语言素数分解prime factoriziation算法完整源码(定义,实现,main函数测试) 素数相 ...
- C语言素数筛选法(prime seive) 算法(附完整源码)
素数筛选prime seive算法 C语言素数筛选prime seive算法完整源码(定义,实现,main函数测试) C语言素数筛选prime seive算法完整源码(定义,实现,main函数测试) ...
最新文章
- shell中的for循环语句
- Macbook air 键盘标点符号怎么输出?
- boost::mp11::mp_replace相关用法的测试程序
- MMIX机器简要介绍
- 使用思科模拟器Packet Tracer与GNS3配置IPv6隧道
- 如何让图片充满excel单元格_如何在Excel单元格建立下拉菜单
- 基于Tensorflow + Opencv 实现CNN自定义图像分类
- 关于Websockets问题:
- Vue:默认的App.vue
- Java设计模式之Adapter模式
- 语言学句法分析树形图怎么画_树形图(句法)
- Html 设置整个页面的背景颜色
- springboot 实现长链接转短链接
- 教你怎么搞定P2P终结者的网速限制
- Visual C++ 2010如何解决程序运行闪退问题
- 我在51CTO微职位学软考——东隅已逝,桑榆非晚
- python timer详解_python线程定时器Timer实现原理解析
- hadoop ha搭建 namenode格式化失败等错误
- 2016年8月10日 星期三 --出埃及记 Exodus 16:10
- 水清冷冷:After Effects 2020(AE2020)图文版安装教程(附工具)
热门文章
- Graph cut [转]
- tcp连接的三次握手
- C# 总结const、 readonly、 static三者区别:
- 序列化类型为XX的对象时检测到循环引用
- 【java.lang.UnsupportedClassVersionError】版本不一致出错
- Java中,一切皆是对象——java中的对象类型与基本数据类型的区别
- PHP扩展高性能日志系统SeasLog简单上手
- ElasticSearch-安装以及常见错误(自己测试过yum install -y log4j* )
- Linux下安装MongoDB3.2.5(自测)
- Vue报错Module not found: Error: Can‘t resolve ‘less-loader‘