派森 #P125. 寻找反素数

news/2024/11/17 18:41:29/

描述

反素数,英文称作 emirp(prime(素数)的左右颠倒拼写),是素数的一种。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

把一个素数的阿拉伯字数字序列变成由低位向高位反写出来,得到的另一个数还是素数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

例如素数13,反写就是31,它是另一个素数,所以13是一个反素数。这个定义排除了相关的回文素数,因为回文素数反写不是另一个数而是它本身。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

最小的几个反素数为:13, 17, 31, 37, 71, 73, 79, 97, 107, 113, 149, 157, 167, 179, 199, ...‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

编写程序,输入两个数m和n,要求n > m,输出m~n(包含m和n)之间所有的反素数,数之间用空格隔开。

样例

输入1

5 50

输出1

13 17 31 37

代码:

m,n = map(int,input().split())
def isPrime(n):if n==1:return Falsefor i in range(2,n):if n%i==0:return Falsereturn True
def isReversePrime(n):if str(n)==str(n)[::-1]:return Falseif isPrime(n):n = str(n)n = n[::-1]n = int(n)if isPrime(n):return Trueelse:return False
for i in range(m,n+1):if isReversePrime(i):print(i,end=' ')

代码解析:

  1. m, n = map(int, input().split()):使用input()函数获取用户输入的一个字符串,然后使用split()方法将其拆分为多个字符串,并使用map()函数将这些字符串转换为整数类型。最终,将这些整数赋值给变量mn
  2. def isPrime(n)::定义一个名为isPrime的函数,用于判断一个数是否为质数。
  3. if n == 1::检查参数n是否等于1,如果是,则返回False,因为1不被视为质数。
  4. for i in range(2, n)::使用range()函数生成一个从2到n-1的整数序列,然后进行迭代,将每个迭代的值依次赋给变量i。该迭代用于检查从2到n-1之间是否存在n的因数。
  5. if n % i == 0::检查n是否能够被当前迭代的值i整除,即判断n是否有其他因数。如果有,则返回False,因为n不是质数。
  6. return True:如果上述循环未找到n的因数,则返回True,表示n是质数。
  7. def isReversePrime(n)::定义一个名为isReversePrime的函数,用于判断一个数是否为反质数。
  8. if str(n) == str(n)[::-1]::将数值n转换为字符串形式,判断该字符串是否与其翻转后的字符串相等。如果相等,意味着n是一个回文数,不满足反质数的条件,返回False。
  9. if isPrime(n)::调用isPrime()函数判断n是否是质数。如果是质数,则进行以下操作,否则直接返回False。
  10. n = str(n):将变量n转换为字符串类型。
  11. n = n[::-1]:使用切片操作将n反转。
  12. n = int(n):将n转换为整数类型。
  13. if isPrime(n)::调用isPrime()函数判断反转后的n是否为质数。如果是质数,则返回True,表示n是反质数;否则返回False。
  14. for i in range(m, n+1)::使用range()函数生成一个从m到n的整数序列(包括n),然后进行迭代,将每个迭代的值依次赋给变量i
  15. if isReversePrime(i)::调用isReversePrime()函数判断当前迭代的值i是否为反质数。如果是反质数,则执行以下操作,否则进入下一次迭代。
  16. print(i, end=' '):打印当前迭代的值i,并以空格结尾。

http://www.ppmy.cn/news/1049972.html

相关文章

uboot使用

一、uboot模式 自启动模式 uboot启动后若没有用户介入,倒计时结束后会自动执行自启动环境变量(bootcmd)中设置的命令(一般作加载和启动内核) 交互模式 倒计时结束之前按下任意按键uboot会进入交互模式,交互模式下用户可输入ub…

plt绘制箱型图+散点图

import numpy as np import matplotlib.pyplot as plt# 创建示例数据 np.random.seed(1) data [np.random.normal(0, std, 100) for std in range(1, 4)]# 绘制箱型图 plt.boxplot(data, patch_artistTrue,zorder0)# 添加数据点的散点图,并设置参数以避免重叠 for …

苹果手机桌面APP带云图标有个箭头,过一段时间经常要下载才能使用APP

环境: IPhone 11 IOS13.0 问题描述: 苹果手机桌面APP带云图标有个箭头,过一段时间经常要下载才能使用APP 解决方案: 1.打开设置,往下找到iTunes Store与App Store 2.找到下面卸载未使用的APP 关闭按钮

docker 批量快速删除容器和镜像

一、批量删除镜像 如果你想要批量删除 Docker 镜像,可以使用各种命令。以下是一些示例: 1. 删除所有镜像: docker rmi $(docker images -q) 2. 删除所有未标记的镜像(即 <none> 镜像): docker rmi $(docker images -f "dangling=true" -q) 请注意…

微信小程序 游戏水平评估系统的设计与实现_pzbe0

近年来&#xff0c;随着互联网的蓬勃发展&#xff0c;游戏公司对信息的管理提出了更高的要求。传统的管理方式已无法满足现代人们的需求。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;随着各行业的不断发展&#xff0c;使命召…

Python数据分析实战-给定JSON格式的数据提取所需字段并转换为DataFrame(附源码和实现效果)

实现功能 给定JSON格式的数据提取所需字段并转换为DataFrame 实现代码 import pandas as pd import json# 假设给定的JSON数据已经存储在data变量中 data [{"title": "Data Source Adapter for Excel Sheets","project_code_url": "htt…

RandomAccessFile类使用详解

RandomAccessFile类使用详解 1.RandomAccessFile特点 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类。即可以读取文件内容&#xff0c;也可以向文件中写入内容。但是和其他输入/输入流不同的是&#xff0c;程序可以直接跳到文件的任意位置来读写数据。   因为R…

【vue】更改角色权限后,实现页面不刷新更改其可展示的导航菜单

登入的角色本身属于领导级别&#xff08;集团权限&#xff09;&#xff0c;没有下级的不同权限&#xff1a; 切换不同身份&#xff08;公司&#xff09;&#xff0c;以获得相应部门的不同导航菜单及权限 这里实现&#xff1a;更改角色权限后&#xff0c;实现页面 不刷新 更改…