88分TLE了
查看原帖
88分TLE了
1201721
MiYuyuyuyu楼主2025/1/22 23:36

大佬们,帮忙看看,第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())
}
2025/1/22 23:36
加载中...