远风工作室
C++博客
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
随笔:92 文章:0 评论:72 引用:0
判断回文素数的方法
给定一组连续的整数(例如2到100000),要求输出所有回文素数,大致思路有以下两种:
第一,先判断是否素数,再判断是否回文(不推荐)。如果是指定列举从2到某个数范围内的回文素数,可以考虑先用筛选法(
http://www.cppblog.com/amazon/archive/2009/06/20/88107.html
)挑选出所有素数,然后利用翻转法逐个判断是否回文,翻转法如下:
bool
check(
long
a)
{
long
b
=
0
,temp
=
a;
//
用b保存逆转后的数,temp保存输入的值,最后用来和b比较
while
(a
>
0
)
{
//
把a的值自右向左逐位取出,自左至右地加到b上
b
*=
10
;
b
+=
a
%
10
;
a
/=
10
;
}
return
b
==
temp;
//
若相等则返回true.
}
第二,先构造回文,再判断是否素数(推荐)。可以先构造所有回文素数,然后根据判断是否素数(
http://www.cppblog.com/amazon/archive/2009/06/20/88107.html
)。构造回文素数的方法又有两种:
(1)
三位回文数公式如下:
for(a[0]=1;a[0]<10;a[0]+=2)
for(a[1]=0;a[1]<10;a[1]++)
n=101*a[0]+10*a[1];
五位回文数公式如下:
for(a[0]=1;a[0]<10;a[0]+=2)
for(a[1]=0;a[1]<10;a[1]++)
for(a[2]=0;a[2]<10;a[2]++)
n=a[0]*10001+a[1]*1010+a[2]*100;
注意,偶数个位的回文素数必然是合数,因为可以被11整除(11除外),且各位是偶数的回文素数也必然是合数,因为可以被2整除。
(2)
使用枚举+翻转的方法,例如12翻转后变成121,123翻转后变成12321,务必保持奇数个位,且最高位是偶数的话不必翻转即可判断为合数。
int
Make(
int
data)
{
int
result;
result
=
data;
while
((data
/=
10
)
!=
0
)
{
result
=
result
*
10
+
data
%
10
;
}
return
result;
}
发表于 2009-08-13 14:11
远风
阅读(2224)
评论(0)
编辑
收藏
引用
所属分类:
数据结构 / 算法
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
数的整除特征【转载】
判断图连通&求割点的算法
并查集学习小结
判断回文素数的方法
判断素数的算法
Dijkstra算法
AVL树总结
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
<
2011年3月
>
日
一
二
三
四
五
六
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(93)
ACM(5)
(rss)
C/C++基础(20)
(rss)
Linux编程(16)
(rss)
MFC(7)
(rss)
MySQL(2)
(rss)
OPNET仿真(11)
(rss)
PHP(13)
(rss)
Python(3)
(rss)
STL(4)
(rss)
Web技术(2)
(rss)
Windows管理(3)
(rss)
数据结构 / 算法(7)
(rss)
收藏夹
(2)
C/C++基础(1)
(rss)
数据结构 / 算法(1)
(rss)
搜索
积分与排名
积分 - 328138
排名 - 73
最新评论
1. re: makefile和make规则
可以评论么
--冯智浩
2. re: PHP调用外部程序的方法
大的as打算阿达的
--硕大的
3. re: LIB和DLL的区别与使用
太赞,收藏一下,谢谢
--mymimi1988
4. re: LIB和DLL的区别与使用
好文,好内容;
--wsdxyz
5. re: LIB和DLL的区别与使用
写的非常详细,感谢。
--Forward
6. re: LIB和DLL的区别与使用
非常好,说得很详细,也很明白,学习了!
--xihuwuyu
7. re: LIB和DLL的区别与使用
感觉很好,对于才接触dll的我来说很够用。。
--Chosan
8. re: VC中ListCtrl经验总结【转载】[未登录]
总结的很好啊,转了
--king
9. re: LIB和DLL的区别与使用
就我自己没看太懂吗
--AzzStyle
10. re: LIB和DLL的区别与使用
通俗易懂,呵
--我的
阅读排行榜
1. LIB和DLL的区别与使用(76397)
2. 虚拟机VMware tools安装【转载】(36560)
3. Linux串口编程(24827)
4. tar命令的C参数(18840)
5. 判断素数的算法(11399)
6. VC中ListCtrl经验总结【转载】(11280)
7. PHP调用外部程序的方法(11061)
8. makefile和make规则(9176)
9. C++进阶必读书籍【转载】(8410)
10. insert时出现主键冲突的处理方法【转载】(8200)