题目描述
求 11 到 n 之间(包括 n),既是素数又是回文数的整数有多少个。
输入格式
一个大于 11小于 10000。
输出格式
11 到 n之间的素数回文数个数。
输入输出样例
输入 #
23
输出 #
1
说明/提示
回文数指左右对称的数,如:11,12121。
def find_primes(n):primes = []for i in range(11, n):is_prime = Truefor j in range(2, int(i ** 0.5) + 1):if i % j == 0:is_prime = Falsebreakif is_prime:primes.append(i)return primesn=int(input())
a=find_primes(n)
s=0
for i in a:x=list(reversed(str(i)))y=''.join(x)if y==str(i):s=s+1
print(s)
解析:
- 还是首先判断素数,得到素数列表。
- 然后依次判断列表中的每个素数是否是回文数,并统计个数。
多练习越熟练。