赞
踩
类型:函数
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。
用户输入一个正整数 n , 请你在一行内输出从小到大排列的的前n个回文素数,数字后面用一个空格进行分隔。
输入一个正整数
符合要求的回文素数
- 输入:10
- 输出:2 3 5 7 11 101 131 151 181 191
假设有字符串str,那么翻转字符串可以使用str[::-1]直接得到。
- def is_prime(n):
- """判断素数的函数,接收一个正整数为参数,参数是素数时返回True,否则返回False
- 减小判定区间,减少循环次数,提升效率。
- """
- if n < 2:
- return False # 0、1、负数以及偶数都不是素数
- for i in range(2, int(n ** 0.5) + 1):
- if n % i == 0: # 能被2到其根号n之间的整数整除的数不是素数
- return False
- else:
- return True # for循环正常结束,未遇到return的数是素数
-
-
- def palindromic(num):
- """接收一个数字为参数,判定其是否为回文数,返回布尔值。"""
- if str(num) == str(num)[::-1]:
- return True
- else:
- return False
-
-
- def output_prime(num):
- """接收一个正整数num为参数,在一行中从小到大输出前num个回文素数。
- 函数无返回值
- """
- i = 2 # 从最小的素数2开始测试
- count = 0 # 计数器置0
- while True: # 无限循环
- if palindromic(i) and is_prime(i): # 先判断回文再判断素数,效率高
- print(i, end=' ') # i为回文素数时输出i,输出后不换行
- count = count + 1 # 每发现一个回文素数计数增加1
- if count == num: # 如果找到回文素数数量与要求数量相同时
- break # 结束循环
- i = i + 1 # 测试下一个数字
-
-
- if __name__ == "__main__":
- n = int(input())
- output_prime(n)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。