Verifique se um número é o principal em Python
- Use o método de iteração simples para determinar um número primo em Python
-
Use a função
sympy.isprime()
para verificar se o número fornecido é um número primo 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 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