题目描述
如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
输入描述:
输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)
输出描述:
输出一个整数,表示区间内回文素数个数。
示例1
输入
100 150
输出
2
解题思路
循环遍历L到R之间数:
1、判断是否为素数,即能够被2到i-1之间的数整除
for j in range(2, i):
if i % j == 0:
break
2、判断是否为回文数,即当前的数是否等于它的reverse
s = str(i)
if s == s[:: -1]:
result += 1
完整代码
nums = list(map(int, input().split()))
result = 0
for i in range(nums[0], nums[1] + 1, 1):
if i == 2 or i == 3 or i == 5:
result += 1
else:
for j in range(2, i):
if i % j == 0:
break
elif j == i - 1:
s = str(i)
if s == s[:: -1]:
result += 1
print(result)