Escrever um programa que calcula e escreve a soma dos números primos entre 92 e 1478.

Passo 1

O enunciado pede um programa que calcule e escreva a soma dos números primos entre 92 e 1478. O conteúdo principal é detecção de números primos e acumulação de um somatório. Para resolver de forma eficiente, vamos usar o Crivo de Eratóstenes para gerar todos os primos até 1478 e depois somar aqueles que estão no intervalo desejado.

Passo 2

Implementar o Crivo de Eratóstenes:
  • Definimos um vetor booleano is_prime de tamanho 1478+1, inicialmente com todos os valores True, exceto índices 0 e 1 que não são primos.
  • Para cada inteiro p de 2 até \lfloor\sqrt{1478}\rfloor, se is_prime[p] for True, marcamos como False todos os múltiplos de p (a partir de p^2).

Passo 3

Após executar o crivo, is_prime[i] indica se i é primo para todo i\le1478. Agora basta percorrer i de 92 até 1478, verificar is_prime[i] e, se for True, acumular i em uma variável soma.

Passo 4

Ao final da varredura, soma conterá a soma de todos os números primos no intervalo. Por fim, imprimimos esse valor na tela.

Resposta

def \(soma_primos_ate\)(n):
 # Crivo de Eratóstenes
 \(is_prime\) = [True] * (n \(+1\))
 \(is_prime\)[0] = \(is_prime\)[1] = False
 p \(=2\)
 while p * p <= n:
 if \(is_prime\)[p]:
 for múltiplo in range(p * p, n \(+1\), p):
 \(is_prime\)[múltiplo] = False
 p \(+=1\)
 return \(is_prime\)

def main():
 \(limite_inferior =92 limite_superior =1478 is_prime\) = \(soma_primos_ate\)(\(limite_superior\))
 soma \(=0\)
 for i in range(\(limite_inferior\), \(limite_superior +1\)):
 if \(is_prime\)[i]:
 soma \(+=\) i
 print(soma)

if __name__ \(==\) "__main__":
 main()

Exercícios relacionados