Faça um programa que conte quantos números primos existem entre
, onde
são números informados pelo usuário.
Passo 1
O programa deve contar quantos números primos existem no intervalo fechado de a até b. O conteúdo envolvido é teste de primalidade usando divisão até
, além de estruturas de repetição e condicionais.
Passo 2
Primeiro, lemos dois inteiros
e
fornecidos pelo usuário. Para simplificar a iteração, verificamos se
e, nesse caso, trocamos os valores para sempre iterar de um menor para o maior.
Inicializamos um contador em 0 para acumular quantos números primos encontramos.
Inicializamos um contador em 0 para acumular quantos números primos encontramos.
Passo 3
Para cada número
no intervalo de
até
(inclusive), verificamos se
. Números menores que 2 não são primos e podem ser pulados.
Implementamos a função is_primo(n) que testa se é primo. Ela itera
de 2 até
. Se algum
dividir
exatamente, retornamos False; caso contrário, retornamos True.
Sempre que is_primo(n) retorna True, incrementamos o contador.
Implementamos a função is_primo(n) que testa se
Sempre que is_primo(n) retorna True, incrementamos o contador.
Passo 4
Ao final, exibimos o valor do contador, que é a quantidade de números primos no intervalo.
Resposta
import math
def is_primo(n):
if n < 2:
return False
limite = int(math.sqrt(n))
for i in range(2, limite + 1):
if n % i == 0:
return False
return True
def contar_primos(a, b):
# garante que a <= b
if a > b:
a, b = b, a
contador = 0
for n in range(a, b + 1):
if is_primo(n):
contador += 1
return contador
def main():
a = int(input("Digite o valor de a: "))
b = int(input("Digite o valor de b: "))
total = contar_primos(a, b)
print(f"Existem {total} números primos entre {a} e {b}.")
if __name__ == "__main__":
main()