您的位置:首页 > 游戏 > 手游 > 山东省住房和城乡建设厅电话号码_网站前端设计是什么_重庆企业网站排名优化_沈阳seo排名优化教程

山东省住房和城乡建设厅电话号码_网站前端设计是什么_重庆企业网站排名优化_沈阳seo排名优化教程

2025/4/21 17:00:05 来源:https://blog.csdn.net/BECOMEviolet/article/details/146991617  浏览:    关键词:山东省住房和城乡建设厅电话号码_网站前端设计是什么_重庆企业网站排名优化_沈阳seo排名优化教程
山东省住房和城乡建设厅电话号码_网站前端设计是什么_重庆企业网站排名优化_沈阳seo排名优化教程

题目描述

因为 151 151 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 151 151 是回文质数。

写一个程序来找出范围 [ a , b ] ( 5 ≤ a < b ≤ 100 , 000 , 000 ) [a,b] (5 \le a < b \le 100,000,000) [a,b](5a<b100,000,000)(一亿)间的所有回文质数。

输入格式

第一行输入两个正整数 a a a b b b

输出格式

输出一个回文质数的列表,一行一个。

输入输出样例

输入

5 500

输出

5
7
11
101
131
151
181
191
313
353
373
383

方式

代码

class Solution:@staticmethoddef oi_input():"""从标准输入读取数据"""left, right = map(int, input().split())return left, right@staticmethoddef oi_test():"""提供测试数据"""return 5, 500@staticmethoddef solution(left, right):def is_prime(n):'''试除法,优化版'''if n < 2:return Falseif n in (2, 3):return Trueif n % 2 == 0 or n % 3 == 0:return Falsei, w = 5, 2while i * i <= n:  # i 为除数 所以要不大于n的平方根if n % i == 0:return Falsei += ww = 6 - wreturn Truedef generate_palindromes():'''回文数生成'''yield 5yield 7yield 11for length in [3, 5, 7]:k = (length + 1) // 2start, end = 10 ** (k - 1), 10 ** k  # 左 与 右for num in range(start, end):s = str(num)if s[0] not in {'1', '3', '7', '9'}:  # 判断最后一位continueprefix, suffix = s, s[:-1][::-1]  # 前半部分 与 去除了中间的后半部分pal = int(prefix + suffix)yield palprime_nums = []for pal in generate_palindromes():if left <= pal <= right and is_prime(pal):prime_nums.append(pal)for p in prime_nums:print(p)oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solutionif __name__ == '__main__':left, right = oi_test()# left, right = oi_input()solution(left, right)

流程图

回文数生成器
生成5,7,11
生成回文数序列
循环处理长度3/5/7
计算半长k=(length+1)//2
确定前缀范围[start=10^(k-1), end=10^k)
遍历前缀数字生成回文
前缀首位是否在1,3,7,9中?
构造回文数:前缀+逆序后缀
开始
输入区间left, right
初始化prime_nums列表
检查回文数是否在区间内
left ≤ pal ≤ right?
执行质数检查
跳过该回文数
是质数?
添加到prime_nums列表
循环结束?
输出所有prime_nums元素
结束

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com