大佬们,帮忙看看,第9个测试点:5 100000000TLE了
rust代码:
use std::io;
fn main() {
// 读取用户输入并解析成两个整数 a 和 b
let mut input = String::new();
io::stdin().read_line(&mut input).expect("读取输入失败");
let nums: Vec<&str> = input.trim().split_whitespace().collect();
let a: usize = nums[0].parse().expect("解析第一个数字失败");
let b: usize = nums[1].parse().expect("解析第二个数字失败");
// 初始化布尔数组,用于标记素数
let mut is_prime = vec![true; b + 1];
is_prime[0] = false;
is_prime[1] = false;
// 筛选素数
for i in 2..=b {
if is_prime[i] {
let mut multiple = i * i;
while multiple <= b {
is_prime[multiple] = false;
multiple += i;
}
// 检查是否是回文素数
if a <= i && is_palindrome(i) {
println!("{}", i);
}
}
}
}
// 检查一个数是否是回文数
fn is_palindrome(num: usize) -> bool {
let s = num.to_string();
s.chars().eq(s.chars().rev())
}