Prévia do material em texto
Para implementar o programa solicitado em Python, que encontre todos os números primos entre dois números \( n \) e \( m \), e que pare a execução quando \( n \) ou \( m \) forem menores ou iguais a um, podemos seguir os seguintes passos: ### Passos para Implementação: 1. **Verificação de Entrada:** - Receber os valores de \( n \) e \( m \) como entrada do usuário. - Verificar se \( n \) e \( m \) são ambos maiores que 1. Se não forem, parar a execução. 2. **Função para Verificar Primalidade:** - Criar uma função que verifica se um número é primo. - Um número primo é aquele que é maior que 1 e que não possui divisores além de 1 e ele mesmo. 3. **Iteração e Verificação de Números Primos:** - Iterar sobre cada número inteiro entre \( n \) e \( m \). - Para cada número, verificar se é primo usando a função criada na etapa anterior. - Armazenar os números primos encontrados em uma lista. 4. **Saída dos Números Primos:** - Apresentar os números primos encontrados ao usuário de forma organizada. 5. **Condição de Parada:** - Verificar se \( n \) ou \( m \) são menores ou iguais a 1 a cada iteração. - Caso uma das condições seja verdadeira, interromper a execução do programa. ### Implementação em Python: Aqui está o código que realiza as etapas descritas acima: ```python def is_prime(num): """ Verifica se um número é primo """ if num <= 1: return False if num == 2: return True # 2 é primo if num % 2 == 0: return False # números pares maiores que 2 não são primos for current in range(3, int(num**0.5) + 1, 2): if num % current == 0: return False return True def find_primes_between(n, m): """ Encontra todos os números primos entre n e m """ prime_numbers = [] for number in range(n, m + 1): if is_prime(number): prime_numbers.append(number) return prime_numbers # Programa principal while True: try: n = int(input("Digite o valor de n (> 1): ")) m = int(input("Digite o valor de m (> 1): ")) if n <= 1 or m <= 1: print("n e m devem ser ambos maiores que 1. Encerrando o programa.") break primes = find_primes_between(n, m) if primes: print(f"Números primos entre {n} e {m}:") print(", ".join(map(str, primes))) else: print(f"Não há números primos entre {n} e {m}.") except ValueError: print("Entrada inválida. Por favor, digite números inteiros.") ``` ### Explicação do Código: - **Função `is_prime(num)`:** Verifica se um número é primo utilizando o método simples de divisão por todos os números menores que a raiz quadrada desse número. - **Função `find_primes_between(n, m)`:** Itera sobre todos os números entre \( n \) e \( m \), chamando `is_prime` para verificar se cada número é primo e os armazena em uma lista. - **Loop `while True`:** Permite que o programa execute indefinidamente até que uma condição de parada (quando \( n \) ou \( m \) forem \( \leq 1 \)) seja encontrada. ### Exemplo de Execução: Para um exemplo de entrada como \( n = 5 \) e \( m = 20 \): ``` Digite o valor de n (> 1): 5 Digite o valor de m (> 1): 20 Números primos entre 5 e 20: 5, 7, 11, 13, 17, 19 ``` Este código garante que apenas números primos sejam listados entre \( n \) e \( m \), conforme solicitado, e interrompe a execução se as condições de entrada não forem atendidas.