Lista 1 de MD2
Recursão Matemática
Gustavo Ribeiro Linhares 222008691
1 - Cálculo do Fatorial
def fatorial(n):
if n == 0 or n == 1:
return 1
return n * fatorial(n - 1)
n = int(input("Digite um número para calcular o fatorial: "))
print(f"{n}! = {fatorial(n)}")
2 - Sequência de Fibonacci
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
return fibonacci(n - 1) + fibonacci(n - 2)
n = int(input("Digite a quantidade de números da sequência de Fibonacci: "))
print("Sequência de Fibonacci:")
for i in range(n):
print(f"Fibonacci({i}) = {fibonacci(i)}")
3 - Impressão de Números Naturais
def imprimir_numeros_naturais(n):
if n == 0:
return
imprimir_numeros_naturais(n - 1)
print(n, end=" ")
n = int(input("Digite o valor de n para imprimir os números naturais de 1 a n: "))
print(f"Números naturais de 1 a {n}:")
imprimir_numeros_naturais(n)
print()
4 - Soma de Números
def soma_numeros(n):
if n == 0:
return 0
return n + soma_numeros(n - 1)
n = int(input("Digite um número para calcular a soma de 1 a n: "))
print(f"Soma de 1 a {n}: {soma_numeros(n)}")
Divisibilidade
5 - Cálculo do MDC (Máximo Divisor Comum)
def mdc(a, b):
if b == 0:
return a
return mdc(b, a % b)
try:
a = int(input("Digite o primeiro número inteiro positivo (a): "))
b = int(input("Digite o segundo número inteiro positivo (b): "))
if a < 0 or b < 0:
print("Por favor, digite números inteiros positivos.")
else:
print(f"O MDC de {a} e {b} é: {mdc(a, b)}")
except ValueError:
print("Erro: Você deve digitar números inteiros válidos.")
6 - Cálculo do MMC (Mínimo Múltiplo Comum)
def mdc(a, b):
if b == 0:
return a
return mdc(b, a % b)
def mmc(a, b):
return abs(a * b) // mdc(a, b)
try:
a = int(input("Digite o primeiro número inteiro positivo (a): "))
b = int(input("Digite o segundo número inteiro positivo (b): "))
if a < 0 or b < 0:
print("Por favor, digite números inteiros positivos.")
else:
print(f"O MMC de {a} e {b} é: {mmc(a, b)}")
except ValueError:
print("Erro: Você deve digitar números inteiros válidos.")
Aritmética Modular
7 - Tabela de Adição Modular
print(f"Tabela de Adição Modular (Z_{n}):")
print(" ", end="")
for i in range(n):
print(f"{i:3}", end="")
print("\n" + "-" * (4 * (n + 1)))
for i in range(n):
print(f"{i:2}|", end="")
for j in range(n):
print(f"{(i + j) % n:3}", end="")
print()
try:
n = int(input("Digite o valor de n para gerar a tabela Z_n de adição modular: "))
if n <= 0:
print("Por favor, digite um número inteiro positivo maior que zero.")
else:
tabela_adicao_modular(n)
except ValueError:
print("Erro: Você deve digitar um número inteiro válido.")
8 - Tabela de Multiplicação Modular
print(f"Tabela de Multiplicação Modular (Z_{n}):")
print(" ", end="")
for i in range(n):
print(f"{i:3}", end="")
print("\n" + "-" * (4 * (n + 1)))
for i in range(n):
print(f"{i:2}|", end="")
for j in range(n):
print(f"{(i * j) % n:3}", end="")
print()
try:
n = int(input("Digite o valor de n para gerar a tabela Z_n de multiplicação modular: "))
if n <= 0:
print("Por favor, digite um número inteiro positivo maior que zero.")
else:
tabela_multiplicacao_modular(n)
except ValueError:
print("Erro: Você deve digitar um número inteiro válido.")