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

Prévia do material em texto

Para resolver esse problema, vamos dividir a implementação em passos claros:
### Passo 1: Entrada de Dados
Primeiramente, precisamos receber os números \( n \) e \( m \) como entrada do usuário. Esses números representarão o intervalo no qual queremos encontrar os números primos. O programa deve continuar executando até que tanto \( n \) quanto \( m \) sejam menores ou iguais a um, momento em que o programa deve parar.
### Passo 2: Verificação de Números Primos
Um número primo é aquele que é maior que 1 e que não pode ser dividido por nenhum número além de 1 e ele mesmo. Para verificar se um número \( x \) é primo, vamos iterar de 2 até \( \sqrt{x} \) (por eficiência) e verificar se \( x \) é divisível por algum desses números. Se não for divisível por nenhum deles, então \( x \) é primo.
### Passo 3: Saída dos Números Primos
Para cada par \( n, m \) fornecido pelo usuário, iremos gerar uma lista dos números primos entre \( n \) e \( m \). Se \( n \) for maior que \( m \), iremos trocar seus valores para garantir que \( n \) seja sempre menor ou igual a \( m \).
### Passo 4: Implementação do Loop Infinito
O programa deve continuar solicitando novos pares de números até que ambos \( n \) e \( m \) sejam menores ou iguais a um. Nesse momento, o programa deve encerrar sua execução.
### Exemplo de Implementação em Python:
```python
import math
def is_prime(num):
 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
 
 # Verifica divisibilidade a partir de 3 até a raiz quadrada de num
 limit = int(math.sqrt(num)) + 1
 for i in range(3, limit, 2):
 if num % i == 0:
 return False # Encontrou um divisor, não é primo
 return True
def prime_numbers_between(n, m):
 if n > m:
 n, m = m, n # Garante que n seja sempre menor ou igual a m
 
 prime_list = []
 for number in range(n, m + 1):
 if is_prime(number):
 prime_list.append(number)
 
 return prime_list
def main():
 while True:
 try:
 n = int(input("Digite o primeiro número (n): "))
 m = int(input("Digite o segundo número (m): "))
 
 if n <= 1 or m <= 1:
 print("Um dos números é menor ou igual a 1. Encerrando o programa.")
 break
 
 primes = prime_numbers_between(n, m)
 if primes:
 print(f"Números primos entre {n} e {m}: {primes}")
 else:
 print(f"Nenhum número primo encontrado entre {n} e {m}.")
 
 except ValueError:
 print("Entrada inválida. Por favor, digite números inteiros.")
if __name__ == "__main__":
 main()
```
### Explicação do Código:
- A função `is_prime(num)` verifica se um número é primo.
- A função `prime_numbers_between(n, m)` gera uma lista de números primos entre \( n \) e \( m \).
- O loop `while True` na função `main()` permite que o programa continue solicitando entradas até que seja fornecido um par onde ambos \( n \) e \( m \) sejam menores ou iguais a um, momento em que o programa termina.
### Conclusão:
Este programa Python atende aos requisitos especificados, permitindo ao usuário encontrar todos os números primos em um intervalo definido por pares de números fornecidos, enquanto continua a aceitar novas entradas até que a condição de encerramento seja atendida.

Mais conteúdos dessa disciplina