Faça um programa que some os números primos existentes entre a e b, onde a e b são números informados pelo usuário.

Passo 1

O enunciado pede um programa que, dados dois inteiros informados pelo usuário \ a e \ b, calcule a soma de todos os números primos existentes no intervalo [\ a, \ b]. O conteúdo aqui envolve testagem de primalidade e iteração sobre um intervalo, e vamos precisar de um método eficiente para verificar se um número é primo.

Passo 2

Primeiro a gente garante que o intervalo esteja em ordem crescente. Se \ a for maior que \ b, trocamos os valores para sempre iterar de um limite inferior para o superior.
Para testar se um número \ n é primo, usamos o método de divisão até \ \sqrt{n}. A ideia é que, se \ n tiver um divisor próprio, ele estará em algum lugar entre 2 e \ \sqrt{n}. Além disso, depois de checar a divisibilidade por 2, podemos pular todos os pares e testar apenas os ímpares.

Passo 3

Ao longo da iteração de cada número \ n no intervalo, fazemos o teste de primalidade. Se for primo, somamos \ n a um acumulador.

Passo 4

No final, imprimimos o valor do acumulador, que é a soma de todos os primos no intervalo.

Resposta

Programa em Python para somar primos entre a e b

def eh_primo(n):
if n < 2:
return False
if n == 2:
return True
if n % 2 == 0:
return False
i = 3
# Testa divisores ímpares até sqrt(n)
while i * i <= n:
if n % i == 0:
return False
i += 2
return True

Leitura dos valores

a = int(input("Digite o valor de a: "))
b = int(input("Digite o valor de b: "))

Ajusta limites caso estejam invertidos

if a > b:
a, b = b, a
soma = 0

Itera de a até b incluindo ambos

for num in range(a, b + 1):
if eh_primo(num):
soma += num
print(f"Soma dos números primos entre {a} e {b}: {soma}")

Exercícios relacionados