1
resposta

[Dúvida] Desafio: Momento projeto Estrutura de Repetição

Estou com grande dúvida para resolver duas questões e gostaria de uma interpretação profunda sobre elas e dicas / links se possível de onde posso me aprofundar no método de resolver essas questões

  1. Os números primos possuem várias aplicações dentro da Ciência de Dados em criptografia e segurança, por exemplo. Um número primo é aquele que é divisível apenas por um e por ele mesmo. Assim, faça um programa que peça um número inteiro e determine se ele é ou não um número primo.

  2. Vamos entender a distribuição de idades de pensionistas de uma empresa de previdência. Escreva um programa que leia as idades de uma quantidade não informada de clientes e mostre a distribuição em intervalos de [0-25], [26-50], [51-75] e [76-100]. Encerre a entrada de dados com um número negativo.

1 resposta

Bom dia!

Verificar se um número é primoLógica:Um número primo é divisível apenas por 1 e por ele mesmo. Para verificar isso:

  • O número deve ser maior que 1.
  • Deve ter apenas dois divisores.
  • Podemos otimizar a verificação testando divisores até a raiz quadrada do número.

Código em Python:

def eh_primo(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):  
        if n % i == 0:
            return False
    return True

num = int(input("Digite um número inteiro: "))

if eh_primo(num):
    print(f"{num} é um número primo.")
else:
    print(f"{num} não é um número primo.")

Explicação:

  • A função eh_primo(n) retorna False se o número for menor que 2.
  • Testa divisores de 2 até sqrt(n), pois não é necessário testar além disso.
  • Se encontrar um divisor, retorna False.

Distribuição de idades por faixa etáriaLógica:

  • O programa lê idades até que um número negativo seja informado.
  • Conta quantos valores pertencem a cada faixa etária.
  • Exibe a contagem final.
faixa1 = faixa2 = faixa3 = faixa4 = 0

while True:
    idade = int(input("Digite a idade (número negativo para sair): "))
    
    if idade < 0:
        break  

    if 0 <= idade <= 25:
        faixa1 += 1
    elif 26 <= idade <= 50:
        faixa2 += 1
    elif 51 <= idade <= 75:
        faixa3 += 1
    elif 76 <= idade <= 100:
        faixa4 += 1

print("\nDistribuição de idades:")
print(f"[0-25] anos: {faixa1} pessoas")
print(f"[26-50] anos: {faixa2} pessoas")
print(f"[51-75] anos: {faixa3} pessoas")
print(f"[76-100] anos: {faixa4} pessoas")

Explicação:

  • O while recebe idades até um número negativo ser inserido.
  • Cada idade é classificada em uma faixa etária e seu respectivo contador é incrementado.
  • Quando o loop termina, os resultados são exibidos.

Python Docs - While Loops