Verifique se um número é o principal em Python

Vaibhhav Khetarpal 10 outubro 2023
  1. Use o método de iteração simples para determinar um número primo em Python
  2. Use a função sympy.isprime() para verificar se o número fornecido é um número primo em Python
Verifique se um número é o principal em Python

Um número primo pode ser representado como um número natural sem outros divisores positivos, exceto para o número 1 e ele mesmo. O número 1 não é contado na lista de primos.

Este tutorial discutirá os diferentes métodos que você pode usar para verificar se um número é um número primo.

Use o método de iteração simples para determinar um número primo em Python

Neste método, usamos um método de iteração simples usando um loop for ou while. Repita os números começando de 2 e subindo até K/2 e verificando se algum desses números divide K.

Se for encontrado um número que corresponda a esse critério, False será retornado. Por outro lado, se todos os números não corresponderem a este critério, o número fornecido K é um número primo e o valor True é devolvido.

O código a seguir usa o método de iteração simples para verificar se o número fornecido é um número primo em Python.

k = 13

# 1 not being a prime number, is ignored
if k > 1:
    for i in range(2, int(k / 2) + 1):
        if (k % i) == 0:
            print("It is not a prime number")
            break
    else:
        print("It is a prime number")

else:
    print("It is not a prime number")

Resultado:

It is a prime number

Você pode otimizar o código acima aplicando algumas alterações. Faça as seguintes otimizações para tornar o código ainda mais rápido:

  • Verifique até que a raiz do número fornecido seja alcançada em vez de verificar o número exato. Esse processo basicamente elimina a redundância que ocorre quando um fator maior do número K é um múltiplo de um fator menor que já foi iterado.

  • Todos os primos existem na forma de 6n ± 1, com 2 e 3 sendo as únicas exceções. Portanto, verificar a divisibilidade do número fornecido com 2 e 3 e, em seguida, verificar através de cada número que tem a forma 6n ± 1 é a solução mais eficiente.

O código a seguir usa o método de iteração simples otimizado para verificar se o número fornecido é um número primo em Python.

def isitPrime(k):
    if k == 2 or k == 3:
        return True
    if k % 2 == 0 or k < 2:
        return False
    for i in range(3, int(k ** 0.5) + 1, 2):
        if k % i == 0:
            return False

    return True


print(isitPrime(13))

Resultado:

True

O método de iteração otimizado o torna mais rápido e eficiente do que o método de iteração simples em cerca de 30%.

Use a função sympy.isprime() para verificar se o número fornecido é um número primo em Python

SymPy é uma biblioteca em Python usada para implementar matemática simbólica. Pretende ser um sistema de álgebra computacional (CAS) simplista que contém todas as características essenciais. A instalação deste módulo é necessária para este método, e pode ser baixado simplesmente usando o comando pip.

O sympy.isprime() é uma função embutida no módulo SymPy e pode ser utilizado para verificar possíveis números primos. É uma função direta e retorna True se o número a ser verificado for primo e False se o número não for primo.

O código a seguir usa a função sympy.isprime() para verificar se o número fornecido é um número primo em Python.

from sympy import *

isprime(8)
isprime(11)

Resultado:

False
True

Devemos observar que qualquer número negativo não se enquadra no critério de números primos. A saída dessas funções pode variar se qualquer número negativo for verificado em relação a ela.

Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn