Exemplo para verificar se um inteiro é um número primo ou não usando o loop for e a instrução if… else. Se o número não for primo, é explicado na saída porque ele não é um número primo.
Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Python:
- Instrução Python if… else
- Python for Loop
- Python quebrar e continuar
Um número inteiro positivo maior que 1 que não possui outros fatores exceto 1 e o próprio número é chamado de número primo. 2, 3, 5, 7 etc. são números primos, pois não possuem nenhum outro fator. Mas 6 não é primo (é composto), pois 2 x 3 = 6
,.
Código fonte
# Program to check if a number is prime or not num = 407 # To take input from the user #num = int(input("Enter a number: ")) # prime numbers are greater than 1 if num> 1: # check for factors for i in range(2,num): if (num % i) == 0: print(num,"is not a prime number") print(i,"times",num//i,"is",num) break else: print(num,"is a prime number") # if input number is less than # or equal to 1, it is not prime else: print(num,"is not a prime number")
Resultado
407 não é um número primo 11 vezes 37 é 407
Neste programa, a variável num é verificada se é primo ou não. Números menores ou iguais a 1 não são números primos. Portanto, só procederemos se o num for maior que 1.
Verificamos se num é exatamente divisível por qualquer número de 2 a num - 1. Se encontrarmos um fator nessa faixa, o número não é primo. Caso contrário, o número é primo.
Podemos diminuir o intervalo de números onde procuramos os fatores.
No programa acima, nosso intervalo de pesquisa é de 2 a num - 1
.
Poderíamos ter usado o intervalo, range(2,num//2)
ou range(2,math.floor(math.sqrt(num)))
. O último intervalo é baseado no fato de que um número composto deve ter um fator menor do que a raiz quadrada desse número. Caso contrário, o número é primo.
Você pode alterar o valor da variável num no código-fonte acima para verificar se um número é primo ou não para outros inteiros.