OneCompiler

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.")