文档章节

回文素数

寂寞暴走伤
 寂寞暴走伤
发布于 2016/07/14 19:33
字数 391
阅读 28
收藏 0

问题描述:

所谓回文素数是指,对一个整数n从左向右和从右向左读结果值相同且是素数,即称为回文素数。
求不超过1000的回文素数。


我的代码:

import math
def prime(m):
    count=0
    for i in range(2,int(math.sqrt(m))+1):
        if m%i==0:
            count=1
    if count!=1:
        return True
    else:
        return False
def palindrome(n):
    if str(n)==str(n)[::-1]:
        return True
    else:
        return False

for j in range(2,1000):
    if prime(j) and palindrome(j):
        print j,


结果:

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


我的思路:

定义两个函数,一个用来判断传入的数是否为素数,另一个用来判断传入的数是否为回文数,然后遍历2到1000中的数,判断是否同时满足既是素数又是回文数;


示例代码:

import math
def isPrimeNumber(num):
    i = 2
    x = math.sqrt(num)
    while i < x:
        if num%i == 0:
            return False
        i += 1
    return True
    
def Reverse(num):
    rNum = 0
    while num:
        rNum = rNum*10 + num%10
        num /= 10
    return rNum
    
def RPrimeNumber(num):
    arr = []
    i = 2
    while i < num:
        if isPrimeNumber(i) and i == Reverse(i):
            arr.append(i)
        i += 1
    return arr
print RPrimeNumber(1000)


结果:

[2, 3, 4, 5, 7, 9, 11, 101, 121, 131, 151, 181, 191, 313, 353, 373, 383, 727, 757, 787, 797, 919, 929]


示例代码有点问题,4和121虽然是回文数但不是素数(2*2和11*11),应该是素数判断函数有问题,把其中的while i < x改为while i <= x即可;


改回来后的结果:

[2, 3, 5, 7, 11, 101, 131, 151, 181, 191, 313, 353, 373, 383, 727, 757, 787, 797, 919, 929]


题目出处:http://www.cheemoedu.com/exercise/23

© 著作权归作者所有

上一篇: 回文数
下一篇: 存钱问题
寂寞暴走伤
粉丝 0
博文 40
码字总数 20969
作品 0
南阳
运维
私信 提问
Python3 欧拉计划 问题51-55

问题46—50参见:https://www.jianshu.com/p/530e1482169e 51、素数数字替换 将两位数a3的第一个数字替换为任意数字,在九个可能值中有六个是素数:13、23、43、53、73和83。将五位数56aa3的...

AiFan
2018/01/08
0
0
Python3 欧拉计划 问题36-40

问题31—35参见:https://www.jianshu.com/p/199a1762f3a0 36、二进制回文数 十进制数585 的二进制表示为 1001001001,可以看出它在这两种进制下都是回文数。找出所有小于一百万,且在十进制...

AiFan
2017/12/29
0
0
【算法】算法的艺术(四)

数组作计数器   一篇文章共有10行,每行最多80字符,编程统计文章中26个英文字母分别出现的次数(不区分大小写)。   实例解析:   文章的内容可以通过键盘输入到一个二维数组中:   ...

wbf961127
2017/11/14
0
0
Apocalypse/c2go

用go实现《c语言经典算法》中的100个例子 腻了,就此终结。 目 录 1.有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的...

Apocalypse
2015/03/29
0
0
Java语言程序设计基础篇 方法(五)

生成随机字符 生成随机字符就是生成0到65535之间的一个随机整数,因为0<=Math.random()<1.0,必须在65535+1 (int) (Math.random() * (65535+1)) 随机生成小写字母 public class RandomChara...

宿命D风
2018/06/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Class 文件结构

https://www.cnblogs.com/honghuzidelaoren/p/3622021.html

Java搬砖工程师
10分钟前
0
0
未分类资料

$ Inside the Linux Kernel 与知乎出产 一张漫画看懂Linux系统结构

十万猛虎下画山
11分钟前
0
0
Android人脸识别Demo竖屏YUV方向调整和图片保存

本博客包含三个常用方法,用于盛开Android版人脸识别Demo中竖屏使用时送入yuv数据,但一直无法识别的情况。 1.首先可以尝试顺时针旋转90°或270°,然后送入识别SDK。 2.旋转方向后依然无法识...

是哇兴哥棒棒哒
14分钟前
0
0
选择阿里云数据库HBase版十大理由

根据Gartner的预计,全球非关系型数据库(NoSQL)在2020~2022预计保持在30%左右高速增长,远高于数据库整体市场。 阿里云数据库HBase版也是踏着技术发展的节奏,伴随着NoSQL和大数据技术的兴...

阿里云云栖社区
27分钟前
0
0
平滑与滤波

五种常见的平滑滤波器: (1)方框型滤波器: 顾名思义,方框型滤波器就是用一个方框型的kernel跟二维图像进行卷积,其核定义如下: kernel= 其中, a = 1 当该滤波器非归一化滤波器 (1) a=...

yepanl
33分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部