赞
踩
类型:函数
描述
回文素数是指一个数既是素数又是回文数。例如,131,既是素数又是回文数。 用户输入一个正整数 n , 请你在一行内输出从小到大排列的的前n个回文素数,数字后面用一个空格进行分隔。
输入格式
输入一个正整数
输出格式
符合要求的回文素数
示例
- 输入:10
- 输出:2 3 5 7 11 101 131 151 181 191
- 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)
- def isprime(n):
- if n<2:
- return False
- for i in range(2,int(n**0.5)+1):
- if n%i == 0:
- return False
- else:
- return True
-
- def ispal(n):
- if str(n) == str(n)[::-1]:
- return True
- else:
- return False
-
- n = int(input())
- num,a = 2,0
- while a<n:
- if ispal(num) and isprime(num) :
- print(num,end=' ')
- a += 1
- num += 1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。