OneCompiler

MD2 - LISTA DE EXERCÍCIOS 1

1. Cálculo de fatorial com recursividade

 num = int(input("Digite um número inteiro positivo: "))

def fatorial(n):
    return 1 if n <= 1 else n * fatorial(n - 1)  # Caso base e recursão

if num < 0:
    print("Números negativos.")
else:
    print(f"O fatorial de {num} é {fatorial(num)}")

2. Sequência de Fibonacci

 n_termos = int(input("Digite o número de termos da sequência de Fibonacci: "))

def fibonacci(n):
    return 1 if n <= 2 else fibonacci(n - 1) + fibonacci(n - 2)  # Caso base e soma recursiva

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

3. Impressão de números naturais de 1 a n

 limite = int(input("Digite um número natural: "))

def imprimir_numeros(n):
    if n > limite: return  # Caso base
    print(n)
    imprimir_numeros(n + 1)  # Recursão

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

4. Soma de números de 1 a n

 valor = int(input("Digite um número inteiro positivo: "))

def soma_recursiva(n):
    return 0 if n == 0 else n + soma_recursiva(n - 1)  # Caso base e recursão

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

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

a = int(input("Número A: "))
b = int(input("Número B: "))

def mdc(a, b):
    while b:  # Continua até o resto ser zero
        a, b = b, a % b
    return a

print(f"O MDC de {a} e {b} é {mdc(a, b)}")

6. Cálculo do MMC usando o MDC

a = int(input("Número A: "))
b = int(input("Número B: "))

def mdc(a, b):
    while b:
        a, b = b, a % b
    return a

def mmc(a, b):
    return a * b // mdc(a, b)  # Fórmula do MMC

print(f"O MMC de {a} e {b} é {mmc(a, b)}")

7. Tabela Z_n para adição modular

n = int(input("Digite o tamanho da tabela: "))

def tabela_adicao_modular(n):
    tabela = []  # Inicializa a tabela
    for i in range(n):
        linha = []  # Cria uma linha da tabela
        for j in range(n):
            linha.append((i + j) % n)  # Adiciona o valor calculado
        tabela.append(linha)  # Adiciona a linha à tabela
    return tabela

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

tabela = tabela_adicao_modular(n)
imprimir_tabela(tabela)

8. Tabela Z_n para multiplicação modular

n = int(input("Digite o tamanho da tabela: "))

def tabela_multiplicacao_modular(n):
    tabela = []  # Inicializa a tabela
    for i in range(n):
        linha = []  # Cria uma linha da tabela
        for j in range(n):
            linha.append((i * j) % n)  # Adiciona o valor calculado
        tabela.append(linha)  # Adiciona a linha à tabela
    return tabela

tabela = tabela_multiplicacao_modular(n)
imprimir_tabela(tabela)