一、题目
题目描述
如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
输入描述:
输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)
输出描述:
示例1输出一个整数,表示区间内回文素数个数。
输入
100 150
输出
2
二、分析及代码
题目:判断给定区间的回文素数的个数
分析:判断是否为素数和回文,是的话加一。代码如下:
from math import sqrt def isprime(n): for i in range(2, int(sqrt(n)+1)): if n%i == 0: return 0 return 1 def isplali(n): s = str(n) s1 = list(s) i = 0 j = len(s1)-1 while i < j: if s1[i] != s[j]: return 0 i += 1 j -= 1 return 1 [x, y] = [int(x) for x in input().split()] num = 0 for i in range(x, y+1): if i != 1: if isprime(i) and isplali(i): num += 1 print(num)