OneCompiler

Lista 1 de MD2

1. Cálculo do Fatorial com Recursividade

  • Esta função calcula o fatorial de um número usando recursão.
num_entrada = int(input("Digite um número inteiro positivo: "))

def calcular_fatorial(x):
    return 1 if x <= 1 else x * calcular_fatorial(x - 1)  # chamada recursiva

if num_entrada < 0:
    print("Números negativos não são permitidos.")
else:
    print(f"O fatorial de {num_entrada} é {calcular_fatorial(num_entrada)}")

2. Gerador da Sequência de Fibonacci

  • Esta função gera a sequência de Fibonacci até um número especificado de termos.
termos_fib = int(input("Digite o número de termos da sequência de Fibonacci: "))

def gerar_fibonacci(termo):
    return 1 if termo <= 2 else gerar_fibonacci(termo - 1) + gerar_fibonacci(termo - 2)  # recursão

print(f"Sequência de Fibonacci até o {termos_fib}º termo:")
for indice in range(1, termos_fib + 1):
    print(gerar_fibonacci(indice), end=" ")
print()

3. Impressão de Números Naturais de 1 a N

  • Esta função imprime todos os números naturais de 1 até um limite dado, usando recursão.
limite_natural = int(input("Digite um número natural: "))

def exibir_numeros(atual, limite):
    if atual > limite: return  # Para a recursão quando atual excede o limite
    print(atual)
    exibir_numeros(atual + 1, limite)  # Chamada recursiva

if limite_natural < 1:
    print("Digite um número natural maior ou igual a 1.")
else:
    exibir_numeros(1, limite_natural)

4. Soma Recursiva de 1 a N

  • Esta função calcula a soma de todos os números de 1 até um dado número, usando recursão.
valor_positivo = int(input("Digite um número inteiro positivo: "))

def soma_recursiva(x):
    return 0 if x == 0 else x + soma_recursiva(x - 1)  # Caso base e soma recursiva

if valor_positivo <= 0:
    print("Digite um número positivo.")
else:
    print(f"A soma dos números de 1 até {valor_positivo} é {soma_recursiva(valor_positivo)}")

5. Algoritmo de Euclides para o Cálculo do MDC

  • Esta função calcula o máximo divisor comum (MDC) de dois números usando o algoritmo de Euclides.
num_a = int(input("Digite o número A: "))
num_b = int(input("Digite o número B: "))

def calcular_mdc(x, y):
    while y:  # Continua até o resto ser zero
        x, y = y, x % y
    return x

print(f"O MDC de {num_a} e {num_b} é {calcular_mdc(num_a, num_b)}")

6. Cálculo do MMC Usando o MDC

  • Esta função calcula o mínimo múltiplo comum (MMC) de dois números usando o MDC.
mmc_a = int(input("Digite o número A: "))
mmc_b = int(input("Digite o número B: "))

def calcular_mdc(x, y):
    while y:
        x, y = y, x % y
    return x

def calcular_mmc(x, y):
    return x * y // calcular_mdc(x, y)  # Fórmula para o MMC

print(f"O MMC de {mmc_a} e {mmc_b} é {calcular_mmc(mmc_a, mmc_b)}")

7. Tabela de Adição Modular para Z_n

  • Esta função gera uma tabela de adição modular de tamanho n.
tamanho_tabela_modular = int(input("Digite o tamanho da tabela de adição: "))

def tabela_adicao_modular(tamanho):
    tabela = []  # Inicializa a tabela
    for linha in range(tamanho):
        linha_atual = []  # Cria uma linha
        for coluna in range(tamanho):
            linha_atual.append((linha + coluna) % tamanho)  # Calcula a soma modular
        tabela.append(linha_atual)  # Adiciona a linha à tabela
    return tabela

def imprimir_tabela(matriz):
    for linha in matriz:
        print(' '.join(map(str, linha)))  # Exibe cada linha da tabela

tabela_adicao = tabela_adicao_modular(tamanho_tabela_modular)
imprimir_tabela(tabela_adicao)

8. Tabela de Multiplicação Modular para Z_n

  • Esta função gera uma tabela de multiplicação modular de tamanho n.
tamanho_tabela_mult_modular = int(input("Digite o tamanho da tabela de multiplicação: "))

def tabela_multiplicacao_modular(tamanho):
    tabela = []  # Inicializa a tabela
    for linha in range(tamanho):
        linha_atual = []  # Cria uma linha
        for coluna in range(tamanho):
            linha_atual.append((linha * coluna) % tamanho)  # Calcula o produto modular
        tabela.append(linha_atual)  # Adiciona a linha à tabela
    return tabela

tabela_multiplicacao = tabela_multiplicacao_modular(tamanho_tabela_mult_modular)
imprimir_tabela(tabela_multiplicacao)