词条信息

admin
admin
超级管理员
最近编辑者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> C   

C语言求回文素数代码及解析

标签: C 回文素数 代码 解析

顶[0] 发表评论(0) 编辑词条

问题描述


所谓回文素数指的是,对一个整数n从左向右和从右向左读其数值都相同且n为素数,则称整数为回文素数。


对于偶数位的整数,除了11以外,都不存在回文素数。即所有的4位整数、6位整数、 8位整数…都不存在回文素数。下面列出两位和三位整数中包含的所有回文素数。


两位回文素数:11


三位回文素数:101、131、151、181、191、313、353、373、383、727、757、787、 797、 919、 929


本题要求解的问题是:求出所有不超过1000的回文素数。


问题分析


本题要使用判断素数的方法,并且要解决如何求一个整数的回文数。


采用的方法是穷举法。对1000以内的每一个整数n进行考察,判断n是否为回文数。如果n是回文数,再判断它是否为素数,对于既是回文数也是素数的整数n,就是要求的回文素数,将其打印输出即可。


由于题目要求解的是所有不超过1000的回文素数,因此最后的结果中应该包含两位和三位的回文数。


采用穷举法来构造一个整数并求与其对应的反序数,若整数与其反序数相等,则该整数是回文数。


算法设计


在问题分析中己经确定要采用穷举法逐一考察1000以内的每个整数,因此本题的算法设计可以釆用循环结构来完成。


通过三重循环来遍历所有1000以内的整数。用三个循环变量来构造整数n,同时,这三个循环变量反序便可以构造出n的反序数m。其中,特别要注意的是如果n的个位为0,接下来要做的就是比较m和n的值是否相等,如果相等,则表明整数n是回文数。再来判断n是否是素数,如果n同时也为素数,则n为回文素数,将其打印出来即可。


下面是完整的代码:


#include<stdio.h>

int fun(int n);

int main()

{

int i, j, k, n, m;

printf("不超过1000的回文数:n");

for(i=0; i<=9; ++i) /*穷举第一位*/

for(j=0; j<=9; ++j) /*穷举第二位*/

for(k=0; k<=9; ++k) /*穷举第三位*/

{

n=i*100+j*10+k; /*计算组成的整数*/

m=k*100+j*10+i; /*计算对应的反序数*/

if(i==0 && j==0) /*处理整数的前两位为0的情况*/

{

m=m/100;

}

else if(i==0) /*处理整数的第一位为0的情况*/

{

m=m/10;

}

if(n>10 && n==m && fun(n)) /*若大于10且为回文素数,则输出*/

{

printf("%dt", n);

}

}

printf("n");

return 0;

}

/*判断参数n是否为素数*/

int fun(int n)

{

int i;

for(i=2; i<(n-1)/2; ++i)

{

if(n%i == 0)

return 0;

}

return 1;

}


运行结果:


不超过1000的回文数:


11 101 131 151 181 191 313 353 373 383 727 757 787 797 919 929

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇C语言求水仙花数代码解析
下一篇微信小程序用户授权源码

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>