OneCompiler

Atividade 1 - MD2 Guilherme Oliveira

110

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()