Pregunta diaria de Blue Bridge Cup (7): números primos de grupo (pitón)

Tema:

Un número primo es un número que no se puede dividir por igual. Por ejemplo: 2 3 5 7 11 y así sucesivamente.
9 = 3 * 3 significa que se puede dividir en 3 partes iguales, por lo que no es un número primo.
Nuestro país fue fundado en 1949. Si solo le da las 4 tarjetas digitales 1 9 4 9 y puede colocarlas en cualquier orden (pero las tarjetas no se pueden colocar al revés, ¡no estamos pensando en eso!), Entonces ¿cuántos 4 dígitos puede hacer? ? El numero primo?
Por ejemplo: 1949, 4919 cumplen todos los requisitos.

Solución:

Utilice el arreglo completo. Después de 1949,
después de organizar toda la matriz multiplicando el número de dígitos por 10 a la potencia de n-1 para obtener la matriz después de toda la disposición,
realice un juicio primario.
Establezca un número mayor que 1.
Si el número original se divide por el número y el resto es 0, significa que el número original no es un número primo directamente Juzgando el siguiente número
Optimización:
Como los dos multiplicadores en el juicio de números primos se ven de pequeño a grande, después de que el
número primo más pequeño alcanza el original número del radical, el número más pequeño se vuelve más grande y se vuelve más grande, lo
que conducirá a juicios repetidos y disminuirá la eficiencia.
Por lo tanto, solo es necesario juzgar que el número más pequeño es menor que el número original del signo raíz.

También necesita ser juzgado cuando se vuelve a calcular
Finalmente, se devuelve la longitud en la matriz de resultados res.

Código:

import itertools

x = list(itertools.permutations('1949'))
res = []

for i in x:
    number = int(i[0]) * 1000 + int(i[1]) * 100 + int(i[2]) * 10 + int(i[3])
    prime = True
    j = 2

    while j <= number ** 0.5:
        if number % j == 0:
            prime = False
            j += 1
            break
        else:
            j += 1
            pass

    if prime and number not in res:
        res.append(number)

print(res)

Respuesta:
6

Supongo que te gusta

Origin blog.csdn.net/weixin_50791900/article/details/112585497
Recomendado
Clasificación