. Números primos em um intervalo
Escreva um programa que receba dois números inteiros e exiba todos os números primos dentro desse intervalo.

Passo 1

Beleza, a questão pede um programa que receba dois inteiros (digamos e ) e mostre todos os números primos entre eles. O conteúdo aqui é: definição de número primo, laços de repetição (para percorrer o intervalo) e teste de primalidade (verificar se um número é primo). Vamos precisar de:
  • Saber o que é primo (só divisível por 1 e por ele mesmo).
  • Como testar isso de um jeito eficiente (testar divisores até ).
  • Estruturas de controle (loops e condicionais) para implementar o programa.

Passo 2

Primeiro, normalizar o intervalo: garantir que a gente percorra do menor para o maior. Se o usuário digitar , trocamos eles. Assim, chamamos de start = min(a, b) e end = max(a, b).

Passo 3

Agora, precisamos de uma função que diga se um número é primo. A ideia é:
  1. Se , não é primo.
  2. Para , tentar dividir por todos os inteiros de 2 até .
  3. Se algum dividir exatamente ( ), não é primo. Caso contrário, é primo.
Teoria rápida: não faz sentido testar divisores maiores que porque, se e ambos forem maiores que , o produto seria maior que . Então todo divisor não-trivial aparece em um par em que pelo menos um é .

Passo 4

Com a função de primalidade pronta, é só:
  1. Fazer um loop for x in start..end.
  2. Se isPrime(x) for verdadeiro, imprimir x.
Isso lista todos os primos no intervalo.

Resposta

função isPrime(n):
    se n ≤ 1 então
        retorne falso
    limite ← floor(√n)
    para d de 2 até limite faça
        se n mod d = 0 então
            retorne falso
    retorne verdadeiro

início do programa:
    leia a, b
    start ← min(a, b)
    end ← max(a, b)
    para x de start até end faça
        se isPrime(x) então
            escreva x

Exercícios relacionados