当前位置:   article > 正文

python123题目——回文素数_回文素数python编程代码

回文素数python编程代码

回文素数

类型:函数

描述

回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。

用户输入一个正整数 n , 请你在一行内输出从小到大排列的的前n个回文素数,数字后面用一个空格进行分隔。

输入格式

输入一个正整数

输出格式

符合要求的回文素数

示例

  1. 输入:10       
  2. 输出:2 3 5 7 11 101 131 151 181 191

参考代码

假设有字符串str,那么翻转字符串可以使用str[::-1]直接得到。

  1. def is_prime(n):
  2.     """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False
  3.     减小判定区间,减少循环次数,提升效率。
  4.     """
  5.     if n < 2:
  6.         return False      # 0、1、负数以及偶数都不是素数
  7.     for i in range(2, int(n ** 0.5) + 1):
  8.         if n % i == 0:    # 能被2到其根号n之间的整数整除的数不是素数
  9.             return False
  10.     else:
  11.         return True       # for循环正常结束,未遇到return的数是素数
  12. def palindromic(num):
  13.     """接收一个数字为参数,判定其是否为回文数,返回布尔值。"""
  14.     if str(num) == str(num)[::-1]:
  15.         return True
  16.     else:
  17.         return False
  18. def output_prime(num):
  19.     """接收一个正整数num为参数,在一行中从小到大输出前num个回文素数。
  20.     函数无返回值
  21.     """
  22.     i = 2                      # 从最小的素数2开始测试
  23.     count = 0                  # 计数器置0
  24.     while True:                # 无限循环
  25.         if palindromic(i) and is_prime(i):  # 先判断回文再判断素数,效率高
  26.             print(i, end=' '# i为回文素数时输出i,输出后不换行
  27.             count = count + 1  # 每发现一个回文素数计数增加1
  28.         if count == num:       # 如果找到回文素数数量与要求数量相同时
  29.             break              # 结束循环
  30.         i = i + 1              # 测试下一个数字
  31. if __name__ == "__main__":
  32.     n = int(input())
  33.     output_prime(n)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/674202
推荐阅读
相关标签
  

闽ICP备14008679号