Prévia do material em texto
Para implementar um programa que gere todas as potências de um número \( m \) menores que um número \( n \), podemos seguir uma abordagem simples usando um loop infinito que recebe \( n \) e \( m \) como entrada e calcula as potências de \( m \) até que a potência seja menor que \( n \).
### Implementação em Python
```python
def calcular_potencias(n, m):
"""
Função para calcular e imprimir todas as potências de m menores que n.
:param n: Limite superior (exclusivo) para as potências
:param m: Base das potências
"""
power = 1
result = []
while power < n:
result.append(power)
power *= m
return result
def main():
while True:
try:
n = int(input("Digite o valor de n (limite superior): "))
m = int(input("Digite o valor de m (base das potências): "))
if m == 0 or m == 1 or m == -1:
print("Erro: m deve ser diferente de 0, 1 ou -1.")
continue
potencias = calcular_potencias(n, m)
print(f"Potências de {m} menores que {n}:")
print(potencias)
except ValueError:
print("Erro: Insira números inteiros válidos para n e m.")
except KeyboardInterrupt:
print("\nPrograma encerrado.")
break
if __name__ == "__main__":
main()
```
### Explicação do Código
1. **Função `calcular_potencias`**:
- Esta função recebe dois parâmetros \( n \) e \( m \).
- Inicializa a variável `power` com 1.
- Usa um loop `while` para calcular as potências de \( m \) enquanto `power` for menor que \( n \).
- Cada potência calculada é adicionada à lista `result`.
- A função retorna a lista `result` contendo todas as potências de \( m \) menores que \( n \).
2. **Função `main`**:
- Esta função é o ponto de entrada do programa.
- Usa um loop `while True` para aceitar entrada do usuário continuamente.
- Solicita ao usuário para inserir os valores de \( n \) e \( m \).
- Verifica se \( m \) é diferente de 0, 1 ou -1. Caso contrário, exibe uma mensagem de erro e continua pedindo entrada válida.
- Chama a função `calcular_potencias` com os valores de \( n \) e \( m \).
- Exibe as potências calculadas na tela.
3. **Execução do Programa**:
- O programa entra em um loop infinito, permitindo que o usuário insira valores diferentes de \( n \) e \( m \).
- Calcula e exibe todas as potências de \( m \) que são menores que \( n \) na forma de uma lista.
### Exemplo de Execução:
Para exemplificar, se o usuário inserir \( n = 1000 \) e \( m = 2 \), a saída será:
```
Potências de 2 menores que 1000:
[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]
```
Isso mostra todas as potências de 2 que são menores que 1000.
### Considerações Finais:
- Este programa oferece uma solução simples e eficiente para gerar as potências de um número \( m \) menores que um número \( n \).
- Ele usa um loop para calcular as potências até que a potência seja maior ou igual a \( n \).
- O programa é projetado para ser executado de forma interativa, aceitando entrada do usuário continuamente até que seja interrompido.
Esta implementação atende aos requisitos especificados e fornece uma solução funcional para o problema proposto.