一、題目
題目描述
如果一個整數隻能被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)