Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

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.

Mais conteúdos dessa disciplina