Java求助,88分一个超时,求素数那块过不去
查看原帖
Java求助,88分一个超时,求素数那块过不去
755446
chengyan楼主2023/9/9 20:02
import java.util.Scanner;

public class PrimePalindromesPoint {
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);
        int a = myScanner.nextInt();
        int b = myScanner.nextInt();
        int[] palindromes = new int[b - a + 1];
        boolean[] primes = new boolean[b - a + 1];

        // 判断回文数
        for (int i = a; i <= b; i++) {
            int reversed = 0;
            int temp = i;
            while (temp != 0) {
                reversed = reversed * 10 + temp % 10;
                temp /= 10;
            }
            if (reversed == i) {
                palindromes[i - a] = i;
            }
        }

        // 从回文数中判断质数
        for (int i = 0; i < palindromes.length; i++) {
            if (isPrime(palindromes[i])) {
                primes[i] = true;
            }
        }

        // 输出结果
        for (int i = 0; i < primes.length; i++) {
            if (primes[i]) {
                System.out.println(palindromes[i]);
            }
        }
    }

    public static boolean isPrime(int n) {
        if (n <= 1) {
            return false;
        }
        for (int i = 2; i * i <= n; i++) {
            if (n % i == 0) {
                return false;
            }
        }
        return true;
    }
}
2023/9/9 20:02
加载中...