python实战实例:区间内的真素数

题目描述

找出正整数 M 和 N 之间(N 不小于 M)的所有真素数。

真素数的定义:如果一个正整数 P 为素数,且其反序也为素数,那么 P 就为真素数。

例如,11,13 均为真素数,因为 11 的反序还是为 11,13 的反序为 31 也为素数。

输入格式

输入两个数 M 和 N,空格间隔。

输出格式

按从小到大输出 M 和 N 之间(包括 M 和 N)的真素数,逗号间隔。如果之间没有真素数,则输出 No

输入输出样例

输入 #1

10 35

输出 #1

11,13,17,31
def find_primes(n):
    if n<=1:
        return  False
    for j in range(2, int(n**0.5) + 1):
            if n % j == 0:
                return False
    return True

x,y=map(int,input().split())
result=[]
for i in range(x,y+1):
    if find_primes(i):
        m= list(reversed(str(i)))
        a=''.join(m)
        if find_primes(int(a)):
            result.append(i)
if len(result)==0:
    print('No')
for i in range(len(result)):
    if i==len(result)-1:
        print((result[i]))
    else:
        print(result[i],end=',')

解析:

  • if find_primes(i):循环判断x-y范围内的质数。
  • 如果是质数,将该数翻转m= list(reversed(str(i)) a=''.join(m),并再次判断是否为质数。
  • 将结果添加到result列表中,如果列表为空,则表述没有真素数,不为空输出结果即可。

学学学~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SHU_ANGY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值