天天看點

愛奇藝校招----回文素數(python)一、題目 二、分析及代碼

一、題目

題目描述

如果一個整數隻能被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)