Python-打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7) (10分) 回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。
前言
PTA程序设计类教学平台—Python作业
题目:
回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。请实现下述两个函数,帮助测试程序完成如下功能:从键盘输入正整数N, 打印从1 ~ N(包含N)的全部回文素数,一行一个。
函数接口定义:
def isPrime(num):
def reverseNumber(num):
isPrime()用于判断整数num是否是素数,是返回True, 否则返回False. reverseNumber()用于返回整数num的反向数,321的反向数为123, 32的反向数为23。
裁判测试程序样例:
N = int(input())
for n in range(1,N+1):
if isPrime(n) and reverseNumber(n) == n:
print(n)
输入样例:
在这里给出一组输入。例如:
400
输出样例:
2
3
5
7
11
101
131
151
181
191
313
353
373
383
首先了解什么是素数
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。
- 举个例子:7这个数,从2开始一直到6,都不能被它整除,只有1和它本身(7)才能被整除,所以7就是一个质数。
回文数
- 正序和倒序都是一样的就叫回文数
完整代码:
N = int(input())
def isPrime(n):if n > 1 :for i in range(2, n):if n % i == 0:breakelse:return ndef reverseNumber(n):num = str(n)m = num[::-1]if num == m:return nfor n in range(1, N + 1):if isPrime(n) and reverseNumber(n) == n:print(n)
exit(0)
详细解析:
按照题目要求先把题目提供的代码放进去并分析一下
N = int(input())def isPrime(n):passdef reverseNumber(n):passfor n in range(1,N+1):if isPrime(n) and reverseNumber(n) == n:print(n)
可以看出一开始定义了一个N用于接收输入,再用for循环遍历一遍1-N
这句if isPrime(n) and reverseNumber(n) ==n: 用来判断调用两个函数返回的值是不是相等的如果相等就输出当下的n。
is :是比较两个引用是否指向了同一个对象(引用比较)。
== :对于数值类型的数据是比较两个对象是否相等。但是对于非数值型的数据,比如字符串,类创建的对象python默认去比较两个对象的地址。
了解了整个框架后就只需要编写判断素数和判断回文数的函数了
1. 判断一个数是不是素数
def isPrime(n): #一个命名为isPrime的函数if n > 1 : #素数必须大于一所以用一个if判断n是不是大于1的for i in range(2, n): #range(start,end,step=)-----range(开始值,结束值,步长)没写默认为1if n % i == 0: #如果是n除i等于0说明不是素数直接(break)结束for循环breakelse:return n #返回n的值给函数调用处
2. 判断回文数
def reverseNumber(n): #一个命名为reverseNumber的函数num = str(n)m = num[::-1] #倒序num给mif num == m: #判断m和num 是不是相等的如果是说明是回文数return n
最后结合代码
N = int(input())
def isPrime(n):if n > 1 :for i in range(2, n):if n % i == 0:breakelse:return ndef reverseNumber(n):num = str(n)m = num[::-1]if num == m:return nfor n in range(1, N + 1):if isPrime(n) and reverseNumber(n) == n:print(n)
exit(0)
到这后就完美解决了~
实现的方法有很多,本篇博客只是给新手提供一种思路。
如有帮助记得点赞~
Python-打印指定范围内的全部回文素数(高教社,《Python编程基础及应用》习题8-7) (10分) 回文素数是指一个数既是素数又是回文数,例如131既是素数又是回文数。相关推荐
- 1.10 编程基础之简单排序 04 奖学金 7分 python
http://noi.openjudge.cn/ch0110/04/ """ 1.10 编程基础之简单排序 04 奖学金 7分 http://noi.openjudge. ...
- 1.7 编程基础之字符串 27 单词翻转 4分 python
""" 1.7 编程基础之字符串 27 单词翻转 4分 http://noi.openjudge.cn/ch0107/24/ https://blog.csdn.net/ ...
- python输出指定范围素数_怎么用python输出指定范围内的质数?
想必初入python学习的小伙伴都会遇到这个问题吧,那怎么处理呢?下面小编就教大家最简单明了的办法,一起来看下吧~ 关于质数: 素数(prime number)又称质数,有无限个.除了1和它本身以外不 ...
- 南开大学python编程基础_[南开大学]20春学期《Python编程基础》在线作业(答案100分)...
[奥鹏]-[南开大学]20春学期(1709.1803.1809.1903.1909.2003)<Python编程基础>在线作业 试卷总分:100 得分:100 第1题,已知" ...
- Python:列表推导生成随机数矩阵(高教社,《Python编程基础及应用》习题4-10) (10分)---生成一个m行n列的元素值不大于20的随机数矩阵(二维列表)
前言 PTA程序设计类教学平台-def函数 运行环境Python3.6 小白进阶之路的学习与记录之------列表 题目: 编写一个Python函数,生成一个m行n列的元素值不大于20的随机数矩阵(二 ...
- python自动爬取快看漫画并发布至头条号(没编程基础也可学会)
一,介绍 1.简介:这是一个可以自动爬取快看漫画上的漫画,下载到本地,并自动发布到今日头条号的编程,无编程基础的人也可学会 2.学习: 1)对于学习python技术的,你可以学习python爬虫技术 ...
- python两个for循环顺序_python两个for循环顺序_Python编程基础2——顺序、循环、选择...
1.课前阅读 1.1学习目标 ①了解Python编程语言中的三大编程结构. ②重点:Python中如何使用顺序.循环.选择结构. ③学习第一个Python库函数. 1.2实践内容 ①学习使用Pytho ...
- Python打印某范围内的素数
继续练手Python基础部分:用Python实现某范围的素数打印 分别用while循环和for循环实现,然后用自定义函数方式,代码如下: # -*- coding: utf-8 -*- "& ...
- Python打印指定日期日历
下面的代码只是演示其中的原理和思路,真正使用时可以直接调用Python标准库calendar中的方法. from datetime import date daysOfMonth = [31, 28, ...
最新文章
- 在Ubuntu虚拟机中配置bridge共享上网
- 智能车竞赛技术报告 | 节能信标组 - 宿迁学院 - MAkkaPakka
- GD32通用定时器、高级定时器PWM输出例程
- CStringArray序列化处理
- 怎样写出可维护的面向对象javascript(译)
- 1031. 查验身份证(15)
- SaltStack源码分析之:master端执行salt模块大致流程
- 人工智能的数学基础(二):函数
- Genymotion 启动app闪退解决方案
- WinForm 设置窗体启动位置在活动屏幕右下角
- python随机数字字符串_pythonrandom生成随机数和字符串,数字
- go字符串转byte_go语言中int和byte转换方式
- android pc投屏,如何解决乐播投屏中投屏失败的问题【乐播投屏】
- openwrt系统安装到云服务器,云服务器安装openwrt
- uunp身形_20个使您身形良好的网站
- 云通信的风险隐患和解决之道——SUBMAIL
- zjnu 1779 KRUŽNICE(线段树成段更新+离散化)
- win7电脑变身WiFi热点,让手机、笔记本共享上网
- 增强现实中的光学透射式头盔显示器的标定初步
- 虚拟人实时互动之基于Android驱动表情随动