牛客网编程练习(2018校招真题编程题汇总)------回文素数

时间限制:1秒 空间限制:32768K

题目描述

如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。

输入描述:

输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)

输出描述:

输出一个整数,表示区间内回文素数个数。

Python Code:

import math
nums = [int(i) for i in input().split()]
L = nums[0]
R = nums[1]
shushu = []
count = 0
for i in range(L, R+1):
    count = 0
    for j in range(2, i):
        if i%j == 0:
            break
        else:
            count += 1
    if count == i-2:
        shushu.append(i)
len_shushu = len(shushu)
min_shushu = shushu[0]
max_shushu = shushu[-1]
ans = []
for n in range(len_shushu):
    num = shushu[n]
    if num < 10:
        ans.append(n)
    elif num>=10 and num<=100:
        shi = math.floor(num/10)
        if num%10 == shi:
            ans.append(num)
    else:
        bai = math.floor(num/100)
        ge = num % 10
        if bai == ge:
            ans.append(num)
print(len(ans))

原文地址:https://www.cnblogs.com/xiaotongtt/p/10709493.html