Atividade 1 - MD2 Guilherme Oliveira
Atividade 1 - MD2 Guilherme Oliveira
código completo a seguir:
Código feito em Python
def fatorial(n):
if n == 0 or n == 1:
return 1
return n * fatorial(n - 1)
def fibonacci(n):
if n == 0:
return 0
if n == 1:
return 1
return fibonacci(n - 1) + fibonacci(n - 2)
def imprimir_numeros(n, atual=1):
if atual > n:
return
print(atual, end=" ")
imprimir_numeros(n, atual + 1)
def soma_numeros(n):
if n == 1:
return 1
return n + soma_numeros(n - 1)
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)
def tabela_adicao_modular(n):
print(f"Tabela Z_{{n}} para Adição Modular:")
for i in range(n):
for j in range(n):
print(f"{{(i + j) % n:2}}", end=" ")
print()
def tabela_multiplicacao_modular(n):
print(f"Tabela Z_{{n}} para Multiplicação Modular:")
for i in range(n):
for j in range(n):
print(f"{{(i * j) % n:2}}", end=" ")
print()
def menu():
while True:
print("\nAtividade 1 - MD2 Guilherme Oliveira")
print("\nEscolha uma opção:")
print("1. Fatorial (n!) usando recursividade")
print("2. Sequência de Fibonacci")
print("3. Impressão recursiva dos números naturais de 1 a n")
print("4. Soma dos números de 1 até n")
print("5. Algoritmo de Euclides para o cálculo do MDC")
print("6. Calcular o MMC a partir do MDC")
print("7. Tabela Z_n para Adição Modular")
print("8. Tabela Z_n para Multiplicação Modular")
print("0. Sair")
escolha = int(input("Digite sua escolha: "))
if escolha == 0:
print("Saindo...")
break
elif escolha == 1:
n = int(input("Digite o valor de n: "))
print(f"Fatorial de {n} = {fatorial(n)}")
elif escolha == 2:
n = int(input("Digite o valor de n: "))
print("Sequência de Fibonacci:")
for i in range(n):
print(fibonacci(i), end=" ")
print()
elif escolha == 3:
n = int(input("Digite o valor de n: "))
print("Números naturais de 1 a n:")
imprimir_numeros(n)
print()
elif escolha == 4:
n = int(input("Digite o valor de n: "))
print(f"Soma dos números de 1 a {n} = {soma_numeros(n)}")
elif escolha == 5:
a = int(input("Digite o primeiro número: "))
b = int(input("Digite o segundo número: "))
print(f"MDC({a}, {b}) = {mdc(a, b)}")
elif escolha == 6:
a = int(input("Digite o primeiro número: "))
b = int(input("Digite o segundo número: "))
print(f"MMC({a}, {b}) = {mmc(a, b)}")
elif escolha == 7:
n = int(input("Digite o valor de n: "))
tabela_adicao_modular(n)
elif escolha == 8:
n = int(input("Digite o valor de n: "))
tabela_multiplicacao_modular(n)
else:
print("Opção inválida. Tente novamente.")
if __name__ == "__main__":
menu()
1. Fatorial (n!) usando recursividade
def fatorial(n):
if n == 0 or n == 1:
return 1
return n * fatorial(n - 1)
2. Sequência de Fibonacci
def fibonacci(n):
if n == 0:
return 0
if n == 1:
return 1
return fibonacci(n - 1) + fibonacci(n - 2)
3. Impressão recursiva dos números naturais de 1 a n
def imprimir_numeros(n, atual=1):
if atual > n:
return
print(atual, end=" ")
imprimir_numeros(n, atual + 1)
4. Soma dos números de 1 até n
def soma_numeros(n):
if n == 1:
return 1
return n + soma_numeros(n - 1)
5. Algoritmo de Euclides para o cálculo do MDC
def mdc(a, b):
if b == 0:
return a
return mdc(b, a % b)
6. Calcular o MMC a partir do MDC
def mmc(a, b):
return abs(a * b) // mdc(a, b)
7. Tabela Z_n para Adição Modular
def tabela_adicao_modular(n):
print(f"Tabela Z_{{n}} para Adição Modular:")
for i in range(n):
for j in range(n):
print(f"{{(i + j) % n:2}}", end=" ")
print()
8. Tabela Z_n para Multiplicação Modular
def tabela_multiplicacao_modular(n):
print(f"Tabela Z_{{n}} para Multiplicação Modular:")
for i in range(n):
for j in range(n):
print(f"{{(i * j) % n:2}}", end=" ")
print()