牛客网编程练习(2018校招真题编程题汇总)------回文素数
时间限制:1秒 空间限制:32768K
题目描述
如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如: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))