Código Leet 866. Números primos de palíndromo (excepto 11, incluso los palíndromos con dígitos pares no son números primos)

1. Título

Encuentre el número primo mínimo de palíndromo mayor o igual a N.

Recuerde que si un número es mayor que 1 y sus factores son solo 1 y en sí mismo, entonces el número es primo.

Por ejemplo, 2, 3, 5, 7, 11 y 13 son números primos.

Recuerde que si un número se lee de izquierda a derecha y de derecha a izquierda, entonces el número es un palíndromo.

Por ejemplo, 12321 es el número de palíndromos.

示例 1:
输入:6
输出:7

示例 2:
输入:8
输出:11

示例 3:
输入:13
输出:101
 
提示:
1 <= N <= 10^8
答案肯定存在,且小于 2 * 10^8

Fuente: LeetCode (LeetCode)
Enlace: https://leetcode-cn.com/problems/prime-palindrome Los
derechos de autor pertenecen a la red de deducción. Comuníquese con la autorización oficial para la reimpresión comercial e indique la fuente de la reimpresión no comercial.

2. Resolución de problemas

A excepción de 11, los palíndromos con dígitos pares, como 456654, no son números primos, todos son divisibles por 11.

  • De acuerdo con este pase, suelte algunos números grandes para evitar el tiempo de espera
class Solution {
public:
    int primePalindrome(int N) {
        if(N==1)
            return 2;
        if(8<=N && N<=11)
            return 11;
        int bit;
        for(;N;++N)
        {
            if(10000000 < N && N < 100000000)
                N = 100000000;//没有8位数的回文素数
        	if(isPalindrome(N,bit) && (bit%2) && isPrime(N))//奇数位的回文数才可能是质数,除11
        		return N;
        }
        return -1;
    }

    bool isPalindrome(int n, int &bit)
    {
    	int t = 0, N = n;
        bit = 0;
    	while(n)
    	{
    		t = t*10+n%10;
    		n /= 10;
            bit++;
    	}
    	return (t==N);
    }
    bool isPrime(int n)
    {
    	for(int i = 2; i <= sqrt(n); i++)
    		if(n%i==0)
    			return false;
		return true;
    }
};

Inserte la descripción de la imagen aquí

841 artículos originales publicados · Me gusta 2137 · Visitas 440,000+

Supongo que te gusta

Origin blog.csdn.net/qq_21201267/article/details/105495449
Recomendado
Clasificación